AstraExt/astra-monitor

Missing icons and unformatted values for zenergy

Closed this issue · 4 comments

Extension version: v4
Zrzut ekranu z 2024-01-15 15-36-27

Output of sensors command
❯ sensors
zenergy-isa-0000
Adapter: ISA adapter
Ecore000:    845.91 J
Ecore001:    845.91 J
Ecore002:      1.07 kJ
Ecore003:      1.07 kJ
Ecore004:    665.96 J
Ecore005:    665.96 J
Esocket0:     13.26 kJ

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +59.5°C  

nvme-pci-0200
Adapter: PCI adapter
Composite:    +29.9°C  (low  =  -0.1°C, high = +82.8°C)
                       (crit = +84.8°C)
Sensor 1:     +29.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +35.9°C  (low  = -273.1°C, high = +65261.8°C)

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +43.0°C  

amdgpu-pci-0500
Adapter: PCI adapter
vddgfx:        1.43 V  
vddnb:       943.00 mV 
edge:         +53.0°C  
PPT:          13.00 W  

BAT1-acpi-0
Adapter: ACPI interface
in0:          12.55 V  
curr1:       1000.00 uA

This is from the zenergy driver. Apart from the missing icons, the displayed values don't seem very useful...
Sensors command shows values in J or kJ, while for example mangohud, shows the power in watts
obraz
All other sensors seem fine

would you mind running sensors && echo "----" && sensors -j and provide the results here?
I could add a setting to convert J in W for the chosen Sensor in the Header [1], but I need to be sure that sensors provide (through the JSON call) consistent measurement units, which it should.
About the missing unit/icon, I'm gonna fix that right now!

EDIT:
[1] I'm not sure it is doable with only sensors' output. Sensors MIGHT provide the instantaneous consumption when queried, if I can't see between two different moments in time how much the total energy consumption was and make the difference, it is not possible to calculate the wattage i.e. Power (W)=Energy (J)/Time (s)
I need to dig a little deeper to see if it is feasible and how.

EDIT 2:
When the energy value is stored in J, sensors should provide cumulative data since boot, in that case I can create a setting to convert it in W. If you are willing to test a little bit on that and give me a feedback, it would be very helpful. Sadly I don't have access to any sensor that provide energy data.

Output of that command:
zenergy-isa-0000
Adapter: ISA adapter
Ecore000:     71.11 J
Ecore001:     71.11 J
Ecore002:     42.67 J
Ecore003:     42.67 J
Ecore004:     39.66 J
Ecore005:     39.66 J
Esocket0:    781.80 J

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +74.2°C  

nvme-pci-0200
Adapter: PCI adapter
Composite:    +36.9°C  (low  =  -0.1°C, high = +82.8°C)
                       (crit = +84.8°C)
Sensor 1:     +36.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +41.9°C  (low  = -273.1°C, high = +65261.8°C)

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +43.0°C  

amdgpu-pci-0500
Adapter: PCI adapter
vddgfx:        1.42 V  
vddnb:       943.00 mV 
edge:         +50.0°C  
PPT:          18.00 W  

BAT1-acpi-0
Adapter: ACPI interface
in0:          12.54 V  
curr1:         0.00 A  

----
{
   "zenergy-isa-0000":{
      "Adapter": "ISA adapter",
      "Ecore000":{
         "energy1_input": 71.174
      },
      "Ecore001":{
         "energy2_input": 71.174
      },
      "Ecore002":{
         "energy3_input": 42.688
      },
      "Ecore003":{
         "energy4_input": 42.688
      },
      "Ecore004":{
         "energy5_input": 39.671
      },
      "Ecore005":{
         "energy6_input": 39.671
      },
      "Esocket0":{
         "energy7_input": 782.171
      }
   },
   "k10temp-pci-00c3":{
      "Adapter": "PCI adapter",
      "Tctl":{
         "temp1_input": 74.250
      }
   },
   "nvme-pci-0200":{
      "Adapter": "PCI adapter",
      "Composite":{
         "temp1_input": 36.850,
         "temp1_max": 82.850,
         "temp1_min": -0.150,
         "temp1_crit": 84.850,
         "temp1_alarm": 0.000
      },
      "Sensor 1":{
         "temp2_input": 36.850,
         "temp2_max": 65261.850,
         "temp2_min": -273.150
      },
      "Sensor 2":{
         "temp3_input": 42.850,
         "temp3_max": 65261.850,
         "temp3_min": -273.150
      }
   },
   "iwlwifi_1-virtual-0":{
      "Adapter": "Virtual device",
      "temp1":{
         "temp1_input": 43.000
      }
   },
   "amdgpu-pci-0500":{
      "Adapter": "PCI adapter",
      "vddgfx":{
         "in0_input": 1.425
      },
      "vddnb":{
         "in1_input": 0.949
      },
      "edge":{
         "temp1_input": 50.000
      },
      "PPT":{
         "power1_input": 16.000
      }
   },
   "BAT1-acpi-0":{
      "Adapter": "ACPI interface",
      "in0":{
         "in0_input": 12.545
      },
      "curr1":{
         "curr1_input": 0.000
      }
   }
}

In the meantime, i decided to try a different driver: zenpower3, which is older and more popular than zenergy, but looks abandoned. The reason i decided to use zenergy in the first place, was because zenpower didn't report the temperature, but on the newest kernel, all sensors work correctly, and astra monitor displays them correctly too. I checked with mangohud, and in the same scenarios, each driver reports a slightly different value (~8-15W) and i don't know which is more accurate.
I can test and experiment with zenergy, but if nothing can be done about it, i can just use zenpower3 instead. Until it breaks again.

ok, your output already gave me an answer or a sort of.
I actually needed the output when Esocket0: exceeds 1000J (1kJ) to see if in sensors -j is still in J (ie: 1000).
Anyway I will add J => W conversion option at the bottom of the TODO list.

J => W conversion won't be included into Astra Monitor for technical limitation of current monitor achitecture, but you will be able to do something similar yourself with User Custom Commands feature. Check our Roadmap to see more details.
I'm closing this issue.