AQL-PS-8 Remote Emulator App

With his code or my code, you should use EW11 Script v007.txt.

But I recently made some modifications to HA code so that users can use the configuration menus. Not sure it has implemented in the other version.

I have looked at your code yet. I had one issue going through settings, but that was due to an array issue that I put in a patch for. Right now I'm able to go through all the menus, including settings and make any change. I actually haven't touched my control panel in a while.

I'll take a look at your code and see if it works for me as well, but since I'm not having any issues it will likely work.

John
 
Looking at the UART section, I'm also not seeing any Received Bytes or Frames. I currently don't have my local screen connected as it's under repair? Do I need to have a local screen connected for this to work? That obviously independent of my script not loading.
I've been able to export the script and it seems like the import worked. Unfortunately, I am not able to connect to it using HA or @mas985 app :( . Anything I'm missing?

java_m9ZQok2TSH.png

java_P8wEBir2FN.png

mspaint_QRntzlLNpg.png

java_sdMC6xWiyg.png

msedge_TE1VjIh5fW.png
 
I just tried your code and get an error going through settings. It's the same array error I got previously.

File "/config/custom_components/aqualogic_p4p8/core.py", line 346, in process
value = int(parts[2][:-1])
~~~~~^^^
IndexError: list index out of range

This is where it errors while right arrowing through Settings. There should be a blinking percentage after Chlorinator.

1717452424512.png

This is what it looks like with my code. The 75% blinks (it's really just showing a blank (space?) and then the value, then blank again, then the value). The code is expecting 3 parts (indexes) for this Else If.
1717452714378.png

elif parts[0] == 'Pool' and parts[1] == 'Chlorinator':
# Pool Chlorinator <value>%
value = int(parts[2][:-1])

This part of the code is very clunky and makes a lot of assumptions with how many parts each text has. It should be rewritten. We'll probably keep running into this issue with what seems to be different versions and controllers.
 
I just tried your code and get an error going through settings. It's the same array error I got previously.

File "/config/custom_components/aqualogic_p4p8/core.py", line 346, in process
value = int(parts[2][:-1])
~~~~~^^^
IndexError: list index out of range

This is where it errors while right arrowing through Settings. There should be a blinking percentage after Chlorinator.

View attachment 580975

This is what it looks like with my code. The 75% blinks (it's really just showing a blank (space?) and then the value, then blank again, then the value). The code is expecting 3 parts (indexes) for this Else If.
View attachment 580976

elif parts[0] == 'Pool' and parts[1] == 'Chlorinator':
# Pool Chlorinator <value>%
value = int(parts[2][:-1])

This part of the code is very clunky and makes a lot of assumptions with how many parts each text has. It should be rewritten. We'll probably keep running into this issue with what seems to be different versions and controllers.
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)


This is what mine looks like:

1717454956405.png
 
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.
 
  • Like
Reactions: mas985
Yes, it's using your method. My physical display does blink, but I believe it's a fake blink.
That must be what the difference is. The P4 uses two display message, one with the value, the other without. Whereas the PS8 uses a special text code to indicate blinking.

This is probably why the parsing fails too on the P4 but not the PS8. The parser was meant for the main display text and not the text in the settings menus.

However all the parsing code including that "int" statement is within a Try statement so it should just continue on without generating an error.

I think you need to just add IndexError to the except statement.
 
That must be what the difference is. The P4 uses two display message, one with the value, the other without. Whereas the PS8 uses a special text code to indicate blinking.

This is probably why the parsing fails too on the P4 but not the PS8. The parser was meant for the main display text and not the text in the settings menus.

However all the parsing code including that "int" statement is within a Try statement so it should just continue on without generating an error.
I replaced parts with text in the debug statement and this is what I see.

2024-06-03 19:33:12.337 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89456.984: Display update: Monday 7 32P
2024-06-03 19:33:12.872 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89457.517: Display update: Monday 7:32P
2024-06-03 19:33:13.399 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89458.045: Display update: Monday 7 32P
2024-06-03 19:33:13.860 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89458.507: Display update: Monday 7:32P
2024-06-03 19:33:14.339 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89458.985: Display update: Monday 7 32P
2024-06-03 19:33:14.882 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89459.529: Display update: Monday 7:32P
2024-06-03 19:33:15.338 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89459.985: Display update: Monday 7 32P

2024-06-03 19:33:25.879 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89470.525: Display update: Pool Chlorinator 75%
2024-06-03 19:33:26.340 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89470.986: Display update: Pool Chlorinator
2024-06-03 19:33:26.866 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89471.512: Display update: Pool Chlorinator 75%
2024-06-03 19:33:27.339 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89471.985: Display update: Pool Chlorinator
2024-06-03 19:33:27.849 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89472.495: Display update: Pool Chlorinator 75%
2024-06-03 19:33:28.340 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89472.986: Display update: Pool Chlorinator
2024-06-03 19:33:31.234 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89475.880: Display update: Pool Chlorinator 75%
2024-06-03 19:33:31.237 DEBUG (Thread-2) [custom_components.aqualogic_p4p8.core] 89475.883: Display update: Pool Chlorinator

Definitely a fake blink. I think I'll just call your method if P8 and do the normal code for P4. Hopefully that fixes some of the issues.
 
  • Like
Reactions: mas985
With his code or my code, you should use EW11 Script v007.txt.

But I recently made some modifications to HA code so that users can use the configuration menus. Not sure it has implemented in the other version.

Mark I put this new EW-11 version in my HA but I don't see any difference on the dash or my ability to change my dash. Looks like the one before from a few days ago.
 

Enjoying this content?

Support TFP with a donation.

Give Support
It will look dentical. It just prevents crashes when you try to edit the settings menus.

Display sensor
Switches: menu, left, right, plus minus
 
Every time you want to add a new sensor or switch it has to be added to the configuration.yaml

sensor:
- platform: aqualogic_ew11
monitored_conditions:
- pool_temp
- air_temp
- spa_temp
- pool_chlorinator
- spa_chlorinator
- salt_level
- pump_speed
- display
- status
switch:
- platform: aqualogic_ew11
monitored_conditions:
- filter
- lights
- aux_1
- aux_2
- aux_3
- aux_4
- aux_5
- aux_6
- valve_3
- valve_4
- heater_1
- filter_low_speed
- menu
- right
- left
- plus
- minus
 
  • Like
Reactions: william13
Every time you want to add a new sensor or switch it has to be added to the configuration.yaml

sensor:
- platform: aqualogic_ew11
monitored_conditions:
- pool_temp
- air_temp
- spa_temp
- pool_chlorinator
- spa_chlorinator
- salt_level
- pump_speed
- display
- status
switch:
- platform: aqualogic_ew11
monitored_conditions:
- filter
- lights
- aux_1
- aux_2
- aux_3
- aux_4
- aux_5
- aux_6
- valve_3
- valve_4
- heater_1
- filter_low_speed
- menu
- right
- left
- plus
- minus
Ok Thanks. Now in the dashboard how does one order things. Example: how would I put "plus" and "minus" and "menu" under the display?
1717460465143.png
 

Enjoying this content?

Support TFP with a donation.

Give Support