On your P4 controller display, the real one not any of the apps, are saying that when in the settings menu, you see text blink?
Mine goes through that menu (Settings -> Chlorinator) just fine so I am not sure what the difference is. Did you change the code near line #305:
text = self.Byte2string(frame)
Yes, it's using your method. My physical display does blink, but I believe it's a fake blink.
For example, when I turn on debug, I see this for the Time.
2024-06-03 19:05:59.499 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87824.145: Display update: ['Monday', '7', '04P', '\x00']
2024-06-03 19:06:00.024 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87824.670: Display update: ['Monday', '7:04P', '\x00']
2024-06-03 19:06:00.703 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87825.350: Display update: ['Monday', '7', '04P', '\x00']
2024-06-03 19:06:01.030 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87825.676: Display update: ['Monday', '7:04P', '\x00']
2024-06-03 19:06:01.518 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87826.164: Display update: ['Monday', '7', '04P', '\x00']
2024-06-03 19:06:02.354 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87827.000: Display update: ['Monday', '7:05P', '\x00']
The : "blinks", but it's really just removing the :
Same with Pool Chlorinator. The 75% "blinks".
2024-06-03 19:06:07.797 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87832.443: Display update: ['Pool', 'Chlorinator', '\x00']
2024-06-03 19:06:08.023 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87832.670: Display update: ['Pool', 'Chlorinator', '75%', '\x00']
2024-06-03 19:06:08.499 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87833.146: Display update: ['Pool', 'Chlorinator', '\x00']
2024-06-03 19:06:09.024 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87833.671: Display update: ['Pool', 'Chlorinator', '75%', '\x00']
2024-06-03 19:06:09.585 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87834.231: Display update: ['Pool', 'Chlorinator', '\x00']
2024-06-03 19:06:10.022 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87834.668: Display update: ['Pool', 'Chlorinator', '75%', '\x00']
2024-06-03 19:06:10.496 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 87835.143: Display update: ['Pool', 'Chlorinator', '\x00']
The debug is just showing the parts. I haven't tried grabbing the raw serial text.