INVT inverter not supported

Hello everyone!
I have just installed an INVT inverter, model XD6KTL to manage my solar installation and I need to integrate it in HA to be able to charge my car with the energy produced by my installation.
My inverter is very similar to those of the DEYE brand (they have the same configuration page, access credentials and even their logos are similar).
Right now I can only visualise the production and consumption data through the SOLARMAN app. I have tried this integration (and another one in HACS) without success (and I have tried all the profiles).
I can't believe I'm the only INVT user who wants to use Home Assistant, but I feel like I'm preaching in the wilderness.
I have written an email to SOLARMAN, and to INVT but so far no news.
I hope to get more luck through this great community.
Thank you very much in advance

 if (ulDataAddr == 4660) {
....
                    InverterCommuTask.this.m_map.put("invt_serialno", serial);

Any response from register 4660?!? The length should be 6.

Right now I can only visualise the production and consumption data through the SOLARMAN app.

That sounds promising.
Maybe it helps if you provide the logfile and post it here for the experts to analyse?
Please let us know what configuration profile you are using and if you have any documentation of the modbus addresses of the inverter.

Right now I can only visualise the production and consumption data through the SOLARMAN app.

That sounds promising.
Maybe it helps if you provide the logfile and post it here for the experts to analyse?
Please let us know what configuration profile you are using and if you have any documentation of the modbus addresses of the inverter.

Hi again PV-Joe, thanks for continuing to try to help me also for this post.
I have used several profiles of the integration and the ones that have taken the longest to give an error (it seemed that it was going to connect) has been with the Afore investor profile. For example with the Deye_hybrid.yaml profile and with almost all the others, it gives this error:

I found on the internet a PDF with the modbus protocols of the INVT inverter (XD and XG series), I pass it to you here as well.
INVT.XG.XD.Inverter.Modbus.RTU.Protocol.3.pdf
I've put a log below, I hope it helps.

2024-10-07 15:39:24.066 DEBUG (MainThread) [custom_components.solarman] async_setup_entry({'created_at': '2024-10-07T13:35:19.421393+00:00', 'data': {'name': 'INVT', 'inverter_host': '<IP_ADDRESS>', 'inverter_serial': 35XXXXXX18, 'inverter_port': 8899, 'inverter_mb_slave_id': 1, 'lookup_file': 'solarman_dtsd422-d3.yaml', 'battery_nominal_voltage': 48, 'battery_life_cycle_rating': 6000}, 'discovery_keys': {}, 'disabled_by': None, 'domain': 'solarman', 'entry_id': '01J9KK21VXDK76YQ180XBZMTP2', 'minor_version': 1, 'modified_at': '2024-10-07T13:37:52.320132+00:00', 'options': {'inverter_host': '<IP_ADDRESS>', 'inverter_port': 8899, 'inverter_mb_slave_id': 1, 'lookup_file': 'afore_hybrid.yaml', 'battery_nominal_voltage': 48, 'battery_life_cycle_rating': 6000}, 'pref_disable_new_entities': False, 'pref_disable_polling': False, 'source': 'user', 'title': 'INVT', 'unique_id': 'solarman_35XXXXXX18', 'version': 1})
2024-10-07 15:39:24.067 DEBUG (MainThread) [custom_components.solarman.discovery] discover
2024-10-07 15:39:24.067 DEBUG (MainThread) [custom_components.solarman.discovery] _discover_all: Broadcasting on <IP_ADDRESS>
2024-10-07 15:39:24.067 DEBUG (MainThread) [custom_components.solarman.discovery] _discover
2024-10-07 15:39:24.113 DEBUG (MainThread) [custom_components.solarman.discovery] _discover: [<IP_ADDRESS>, D427870BA20E, 35XXXXXX18]
2024-10-07 15:39:24.268 DEBUG (MainThread) [custom_components.solarman.parser] Defaults for update_interval: 10, code: 4, min_span: 25, digits: 6
2024-10-07 15:39:24.269 DEBUG (MainThread) [custom_components.solarman.api] {'connections': {('mac', 'd4:27:87:0b:a2:0e')}, 'identifiers': {('solarman', 35XXXXXX18)}, 'name': 'INVT', 'manufacturer': 'Afore', 'model': 'HYBRID', 'serial_number': 35XXXXXX18}
2024-10-07 15:39:24.269 DEBUG (MainThread) [custom_components.solarman] async_setup: coordinator.async_config_entry_first_refresh
2024-10-07 15:39:24.270 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Scheduling 4 query requests. #0
2024-10-07 15:39:24.270 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 ...
2024-10-07 15:39:24.270 INFO (MainThread) [custom_components.solarman.api] [35XXXXXX18] Connecting to <IP_ADDRESS>:8899
2024-10-07 15:39:24.294 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] SENT: a5 17 00 10 45 12 00 f6 d0 ff d1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04 01 fb 00 36 00 11 5e 15
2024-10-07 15:39:30.610 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] RECD: a5 10 00 10 15 12 51 f6 d0 ff d1 02 01 9b b2 03 00 42 02 00 00 f7 31 00 67 05 00 59 15
2024-10-07 15:39:30.611 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 failed. [V5FrameError: V5 frame does not contain a valid Modbus RTU frame]
2024-10-07 15:39:30.813 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 attempts left: 4
2024-10-07 15:39:30.813 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] SENT: a5 17 00 10 45 13 00 f6 d0 ff d1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04 01 fb 00 36 00 11 5f 15
2024-10-07 15:39:36.992 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] RECD: a5 10 00 10 15 13 52 f6 d0 ff d1 02 01 a1 b2 03 00 49 02 00 00 f7 31 00 67 05 00 68 15
2024-10-07 15:39:36.993 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 failed. [V5FrameError: V5 frame does not contain a valid Modbus RTU frame]
2024-10-07 15:39:37.394 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 attempts left: 3
2024-10-07 15:39:37.395 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] SENT: a5 17 00 10 45 14 00 f6 d0 ff d1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04 01 fb 00 36 00 11 60 15
2024-10-07 15:39:43.647 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] RECD: a5 10 00 10 15 14 53 f6 d0 ff d1 02 01 a8 b2 03 00 4f 02 00 00 f7 31 00 67 05 00 77 15
2024-10-07 15:39:43.647 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 failed. [V5FrameError: V5 frame does not contain a valid Modbus RTU frame]
2024-10-07 15:39:44.249 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 attempts left: 2
2024-10-07 15:39:44.250 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] SENT: a5 17 00 10 45 15 00 f6 d0 ff d1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04 01 fb 00 36 00 11 61 15
2024-10-07 15:39:50.276 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] RECD: a5 10 00 10 15 15 54 f6 d0 ff d1 02 01 ae b2 03 00 56 02 00 00 f7 31 00 67 05 00 86 15
2024-10-07 15:39:50.276 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 failed. [V5FrameError: V5 frame does not contain a valid Modbus RTU frame]
2024-10-07 15:39:51.078 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 attempts left: 1
2024-10-07 15:39:51.078 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] SENT: a5 17 00 10 45 16 00 f6 d0 ff d1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04 01 fb 00 36 00 11 62 15
2024-10-07 15:39:54.270 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Request failed. [Previous State: Disconnected (-1)]
2024-10-07 15:39:54.271 INFO (MainThread) [custom_components.solarman.api] [35XXXXXX18] Disconnecting from <IP_ADDRESS>:8899
2024-10-07 15:39:54.274 DEBUG (MainThread) [custom_components.solarman.coordinator] Finished fetching INVT data in 30.005 seconds (success: False)
2024-10-07 15:39:54.275 DEBUG (MainThread) [custom_components.solarman.coordinator] async_shutdown
2024-10-07 15:39:54.276 INFO (MainThread) [custom_components.solarman.api] [35XXXXXX18] Disconnecting from <IP_ADDRESS>:8899
2024-10-07 15:39:59.415 DEBUG (MainThread) [custom_components.solarman] async_setup_entry({'created_at': '2024-10-07T13:35:19.421393+00:00', 'data': {'name': 'INVT', 'inverter_host': '<IP_ADDRESS>', 'inverter_serial': 35XXXXXX18, 'inverter_port': 8899, 'inverter_mb_slave_id': 1, 'lookup_file': 'solarman_dtsd422-d3.yaml', 'battery_nominal_voltage': 48, 'battery_life_cycle_rating': 6000}, 'discovery_keys': {}, 'disabled_by': None, 'domain': 'solarman', 'entry_id': '01J9KK21VXDK76YQ180XBZMTP2', 'minor_version': 1, 'modified_at': '2024-10-07T13:37:52.320132+00:00', 'options': {'inverter_host': '<IP_ADDRESS>', 'inverter_port': 8899, 'inverter_mb_slave_id': 1, 'lookup_file': 'afore_hybrid.yaml', 'battery_nominal_voltage': 48, 'battery_life_cycle_rating': 6000}, 'pref_disable_new_entities': False, 'pref_disable_polling': False, 'source': 'user', 'title': 'INVT', 'unique_id': 'solarman_35XXXXXX18', 'version': 1})
2024-10-07 15:39:59.416 DEBUG (MainThread) [custom_components.solarman.discovery] discover
2024-10-07 15:39:59.416 DEBUG (MainThread) [custom_components.solarman.discovery] _discover_all: Broadcasting on <IP_ADDRESS>
2024-10-07 15:39:59.416 DEBUG (MainThread) [custom_components.solarman.discovery] _discover
2024-10-07 15:39:59.452 DEBUG (MainThread) [custom_components.solarman.discovery] _discover: [<IP_ADDRESS>, D427870BA20E, 35XXXXXX18]
2024-10-07 15:39:59.610 DEBUG (MainThread) [custom_components.solarman.parser] Defaults for update_interval: 10, code: 4, min_span: 25, digits: 6
2024-10-07 15:39:59.610 DEBUG (MainThread) [custom_components.solarman.api] {'connections': {('mac', 'd4:27:87:0b:a2:0e')}, 'identifiers': {('solarman', 35XXXXXX18)}, 'name': 'INVT', 'manufacturer': 'Afore', 'model': 'HYBRID', 'serial_number': 35XXXXXX18}
2024-10-07 15:39:59.611 DEBUG (MainThread) [custom_components.solarman] async_setup: coordinator.async_config_entry_first_refresh
2024-10-07 15:39:59.611 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Scheduling 4 query requests. #0
2024-10-07 15:39:59.611 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] Querying 0507 - 0560 | 0x01FB - 0x0230 # 054 ...
2024-10-07 15:39:59.612 INFO (MainThread) [custom_components.solarman.api] [35XXXXXX18] Connecting to <IP_ADDRESS>:8899
2024-10-07 15:39:59.654 DEBUG (MainThread) [custom_components.solarman.api] [35XXXXXX18] SENT: a5 17 00 10 45 61 00 f6 d0 ff d1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04 01 fb 00 36 00 11 ad 15

Thank you very much for your help! Hopefully we will reach a successful conclusion soon.

He visto también que en la web del inversor, existe una opción para conectarse a un servidor a través de TCP/UTP. He intentado conectarme a Home Assistant y recibir datos via Node Red con nodos de TCP in, pero no he tenido éxito.

@MrLopHA the registers for this inverter (checked few from the PDF) don't match any of the definition files here, so you'll have to start from scratch and make your own YAML file.

Right now I can only visualise the production and consumption data through the SOLARMAN app.

What profile does show production and consumption?
I suggest you start with that profile and delete all the sensors except for these two sensors.
After that add one modbus register after the other from your modbus.pdf and check if they are working.
Any other suggestion @davidrapan?

What profile does show production and consumption?
I suggest you start with that profile and delete all the sensors except for these two sensors.
After that add one modbus register after the other from your modbus.pdf and check if they are working.
Any other suggestion @davidrapan?

Right now I can only visualise the production and consumption data through the SOLARMAN app.

I don't think I've made myself clear, I don't get this data from the HA integration, but from the SOLARMAN app I have on my iPhone.
None of the profiles collected by the HA integration work with my inverter.
My hope right now is to decipher the information I manage to collect from the inverter via TCP. I agree with @githubDante that those codes are not from the inverter, I think they are the codes that the SOLARMAN API uses to run the app on my iPhone.

It's quite simple. You just have to copy for example inverter_definitions/deye_hybrid.yaml into inverter_definitions/custom/invt_hybrid.yaml
And start changing registry address for all of the sensors acording the document you posted here before:

I found on the internet a PDF with the modbus protocols of the INVT inverter (XD and XG series), I pass it to you here as well.
INVT.XG.XD.Inverter.Modbus.RTU.Protocol.3.pdf

And then configure device using this new profile.

La respuesta de @davidrapan fue esclarecedora, comprendí como crear mi propio archivo customizado para mi inversor. Por otro lado, encontré un código para otro inversor de INVT aquí:
https://community.home-assistant.io/t/ha-integration-invt-xg50ktr-lsw5/681962/4
Con ese código el inversor la conexión se produce y obtengo datos, pero debo revisarlo bien porque no todos funcionan con mi inversor, pero creo que en unos dias lo tendré listo y funcionando al 100%, Si lo consigo, naturalmente, el archivo final estará a disposición del staff por si quisiera añadirlo al repositorio.

Very good! I think adding another supported inverter will be a great enhancement to the compatible list and will help other users.
Make sure to use the standardized entityID's to stay compatible with future updates.

Hello again friends, I have created some new entities related to the battery. but I can't quite understand the Modbus code list and I can't find some values that I think are essential, for example:
Current battery discharge power; Current battery charge power and Total solar generation power.
I would be very grateful if you could have a look at the PDF and help me to find these data.

INVT.XG.XD.Inverter.Modbus.RTU.Protocol.3.pdf

I also leave you the .yaml file I'm working on in case you want to have a look at it. Thank you very much again
INVT_inverter.txt

Hello again friends, I have created some new entities related to the battery. but I can't quite understand the Modbus code list and I can't find some values that I think are essential, for example:
Battery current discharge power; Battery current charge power and Total solar generation power.
I would be very grateful if you could have a look at the PDF and help me to find these data.

INVT.XG.XD.Inverter.Modbus.RTU.Protocol.3.pdf

I also leave you the .yaml file I'm working on in case you want to have a look at it. Thank you very much again
INVT_inverter.txt

The total solar power can be calculated. It's the sum of the below:
[(string.pv_current * string.pv_voltage) for string in inverter.strings]

As for the battery the PDF clearly states that the value for register 0x3908 is signed. When the value > 0 the battery is being charged and is discharged when the value is below zero.

Hello again friends, I have created some new entities related to the battery. but I can't quite understand the Modbus code list and I can't find some values that I think are essential, for example:
Battery current discharge power; Battery current charge power and Total solar generation power.
I would be very grateful if you could have a look at the PDF and help me to find these data.

INVT.XG.XD.Inverter.Modbus.RTU.Protocol.3.pdf

I also leave you the .yaml file I'm working on in case you want to have a look at it. Thank you very much again
INVT_inverter.txt

The total solar power can be calculated. It's the sum of the below:
[(string.pv_current * string.pv_voltage) for string in inverter.strings]

As for the battery the PDF clearly states that the value for register 0x3908 is signed. When the value > 0 the battery is being charged and is discharged when the value is below zero.

Exacto, la potencia resulta de aplicar intensidad por voltaje. He intentado crear dos sensores (tengo dos strings) para después, sumarlos y obtener la potencia total de producción solar.
sensor:

platform: template
sensors:
pv01_power:
friendly_name: "PV01 Power"
unit_of_measurement: "kW"
value_template: "{{ (states('sensor.inverter_pv01_current') | float * states('sensor.inverter_pv01_voltage') | float) / 1000 }}"
icon_template: 'mdi:solar-power'
pv02_power:
friendly_name: "PV02 Power"
unit_of_measurement: "kW"
value_template: "{{ (states('sensor.inverter_pv02_current') | float * states('sensor.inverter_pv02_voltage') | float) / 1000 }}"
icon_template: 'mdi:solar-power'
`
Pero al incorporar este código en configutation.yaml la integración deja de funcionar, da error de conexión constantemente.

Respecto a la batería el valor 0x3908 muestra un valor que no tiene lógica.

You don't have to calculate it yourself, @githubDante told you the register which holds Battery Power value.

I know. Maybe I didn't explain myself well.
Battery PowerIs included in this file, but it doesn't work well.

I also leave you the .yaml file I'm working on in case you want to have a look at it. Thank you very much again
INVT_inverter.txt

On the other hand, I want to obtain the total power that the sun produces, and I must calculate that myself. But I can't do it either :(

Battery Power Is included in this file, but it doesn't work well.

Because it needs rule: 2 not a rule: 1.

For the battery the rule must be 2, and the datatype uint16
As for the total PV power you will need something like
        registers:
          [
            0x0001,
            0x0002,
            0x0003,
            0x0004,
            0x0005,
            0x0006,
            0x0007,
            0x0008,
            0x0009,
            0x000a,
          ]
        sensors:
          - registers: [0x0001]
            multiply:
              registers: [0x0002]
        - registers: [0x0003]
            multiply:
              registers: [0x0004]

@davidrapan why the parser has double try_parse_unsigned  for rules 1 & 3 ?

Nooooooo idea, this is a remnant of Stephan's integration, which I took inspiration from in the very beginning.
I'm guessing that the intention at the beginning was that 3 and 4 were for > 16b and later this behavior went to 1 and 2 as well.

@MrLopHA
Have you been successful getting your inverter to work or did you give up trying?

Hi

@MrLopHA Have you been successful getting your inverter to work or did you give up trying?

Hi!
I have managed to get many parameters to work, but many others are still missing.
For me they are enough for the moment, although I will continue to investigate.

You could then share your file and I can add it to the repository. 😉

Sure!
How can I send it to you?

You can upload it right here, just drop the file inside the textbox, it will upload. 😉

INVT_XD6KTL.txt
Done!

@davidrapan
I forgot to attach the updated file with the MODBUS protocol of the inverter.
Now, you can to update the documentation folder in your integration if you want.

Good! Thank you!

feat: Add INVT XD3-6KTL profile
w/ some fixes, added crucial sensors and renames to meet our standards

Hi @davidrapan
Thank you very much for taking the trouble. Your file has been very helpful to me in improving the integration of my inverter, however I have been testing and reviewing your file and I have come to these conclusions:
1- This code for LOAD POWER don't work
- name: "Load Power"
     class: "power"
     state_class: "measurement"
     uom: "kW"
     scale: 0.1
     rule: 1
     registers: [0x381C]

We have calculated (Hello, Andrés ;-) ) this data by adding the active power given by the inverter in 0x381D and the meter measurement given in 0x3827 and it works.
- name: "Load Power"
      class: "power"
      state_class: "measurement"
      uom: "W"
      scale: 0.1
      rule: 4
      digits: 0
      registers: [0x381E, 0x381D, 0x3828, 0x3827]
      uint: enforce
      sensors:
        - signed:
          registers: [0x381E, 0x381D]
        - operator: add
          signed:
          registers: [0x3828, 0x3827]
      icon: 'mdi:home-lightning-bolt'

2- We have created the GRID POWER sensor with the data from the METER (in my case the METER measures the input of the electrical supply of my house). I have a Shelly installed and the data from both sensors match.
    - name: "Grid Power"
      class: "power"
      state_class: "measurement"
      uom: "W"
      scale: 0.1
      rule: 4
      registers: [0x3828, 0x3827]
      icon: 'mdi:meter-electric'

3- Calling POWER to OUTPUT ACTIVE POWER I think can lead to confusion. I prefer to leave OUTPUT ACTIVE POWER in my code, but I understand that you prefer to change it and adjust it to a common style.
4- The POWER LOSSES sensor doesn't work, we have called this sensor INVERTER LOSSES and used this code:
    - name: "Inverter Losses"
      class: "power"
      state_class: "measurement"
      uom: "W"
      scale: 0.1
      rule: 1
      digits: 0
      registers: [0x3B01, 0x3B02, 0x381E, 0x381D, 0x3909, 0x3908]
      uint: enforce
      sensors:
        - registers: [0x3B01]
        - operator: add
          registers: [0x3B02]
        - operator: subtract
          signed:
          registers: [0x381E,0x381D]
        - operator: subtract
          signed:
          registers: [0x3909,0x3908]
      icon: 'mdi:home-lightning-bolt'

I have done some screenshots so you can see how both are shown:

Your sensor was renamed to appear next to ours and capture it.

Your sensor

Our sensor
This is the file I'm using now. It looks like this in the absence of giving it the standardised format of your integration.
https://github.com/user-attachments/assets/13a48aab-27c3-4073-b1ea-f1dbd9d4fdfe
INVT_XD6KTL CUSTOM.txt

I have to say I was little bit confused about some mentioned registers above cause the docs are not really clear about them.

We have calculated (Hello, @andresindlp ;-) ) this data by adding the active power given by the inverter in 0x381D and the meter measurement given in 0x3827 and it works.

So the inverter does not have dedicated register for that?

Calling POWER to OUTPUT ACTIVE POWER I think can lead to confusion. I prefer to leave OUTPUT ACTIVE POWER in my code, but I understand that you prefer to change it and adjust it to a common style.

Yes it's for the general scheme across inverters and also in reference to the HA. And "ACTIVE" is in this term redundant word. OUTPUT ACTIVE POWER and OUTPUT POWER are virtually synonymous terms.

The POWER LOSSES sensor doesn't work, we have called this sensor INVERTER LOSSES and used this code:

The term INVERTER LOSSES (INVERTER & LOSSES, could be good candidate for the name though) could be little bit misleading. Power losses sensor contains Inverter Consumption and AC/DC conversion losses.

So the inverter does not have dedicated register for that?

Of course...theoretically. But certainly, we have not been able to obtain any value from this register.

The term INVERTER LOSSES (INVERTER & LOSSES, could be good candidate for the name though) could be little bit misleading. Power losses sensor contains Inverter Consumption and AC/DC conversion losses.

Thats right, but as in the previous case, the registry that should provide this data doesn´t work.
Changing the subject:
Do you think it would be possible to add writing commands through this integration?
I am thinking of being able to configure the priority of the generated energy (to the loads, to the battery or to the grid) or program the battery charging from the grid.

So that means Battery Power values is inverted?
fix: INVT XD-TL profile

So that means Battery Power value is inverted? Strange.
fix: INVT XD-TL profile

I don’t understand what you mean
I’ll try the code modifications and I’ll tell you

Today I have seen several errors in my registration:
The first:

Registrador: homeassistant.components.sensor
Fuente: components/sensor/init.py:733
integración: Sensor (documentación, problemas)
Ocurrió por primera vez: 18:11:43 (1 ocurrencias)
Última vez registrado: 18:11:43
Entity sensor.invt_battery_temperature (<class 'custom_components.solarman.sensor.SolarmanSensor'>) is using native >unit of measurement 'ºC' which is not a valid unit for the device class ('temperature') it is using; expected one of ['°C', 'K', >'°F']; Please update your configuration if your entity is manually configured, otherwise create a bug report at >https://github.com/davidrapan/ha-solarman/issues

This is what the code looks like in the configuration file:

I have changed uom: "ºC" to uom: "°C" (it looks the same but it is not).
The second:

Registrador: homeassistant.components.sensor
Fuente: components/sensor/init.py:571
integración: Sensor (documentación, problemas)
Ocurrió por primera vez: 18:11:42 (2 ocurrencias)
Última vez registrado: 18:11:43
Entity sensor.invt_inverter_status (<class 'custom_components.solarman.sensor.SolarmanSensor'>) is using state class >'measurement' which is impossible considering device class ('enum') it is using; expected None; Please update your >configuration if your entity is manually configured, otherwise create a bug report at https://github.com/davidrapan/ha->solarman/issues
Entity sensor.invt_battery_state (<class 'custom_components.solarman.sensor.SolarmanSensor'>) is using state class >'measurement' which is impossible considering device class ('enum') it is using; expected None; Please update your >configuration if your entity is manually configured, otherwise create a bug report at https://github.com/davidrapan/ha->solarman/issues

This is what the code looks like in the configuration file:

I have deleted state_class: "measurement" in both

fix: INVT XD-TL profile


Update CEDS delivery date

Description
Checklist
Please confirm that this pull request has done the following:

[x] Documentation added (where applicable)
[x] Changelog item added to changelog/

Very tight allocation of publication - Sasha will be at the ESGF F2F meeting from the 4-8th, and so I would rather identify the week of the 11th as delivery, assuming that Steve et al have these data finalized

Nice, updated

@ssmithclimate FYI too


[BUG] Time synchronization of dual-camera Pi5 system

Describe the bug
Basically I need to make sure the two HQ cameras on my Pi5 board to capture a picture simultaneuosly within 1ms. I noticed there is 'SensorTimestamp' in the metadata of each captured request. So by controlling the frame duration, I aligned the requests of two HQ cameras by 'SensorTimestamp' with some PID-like algorithm.
However, I found that when two HQ cameras capture images in a very close SensorTimestamp, the captured images were not strictly time synchronized. For instance, they are shooting at a high-refresh-rate stopwatch, and the images they captured showed the images were not captured in the same time, always with a 8~10ms uncertain delay.

I pasted a example above, left camera (b) captured a '13:23:702' at while right camera (a) captured '13:23:712' with about 10ms delay. But the timestamp from the metadata showed b is<PHONE_NUMBER>us while a is<PHONE_NUMBER>us, only less than 200us, which is much smaller than real delay.
I do know that camera need some readout time to transfer image buffer to Pi board, but will that takes about 10ms delay? Could anyone help to explain why that 10ms delay exists?
Below is my python code for reproduce (Pi5 4GB board, 2 HQ cameras connected)  and note that you need a very high refresh speed monitor for the stopwatch (my is a 240hz screen).
To Reproduce

from picamera2 import Picamera2
from picamera2 import MappedArray
import time
from PIL import Image

def P_controller(Kp: float = 0.05, setpoint: float = 0, measurement: float = 0, output_limits=(-10000, 10000)):
    e = setpoint - measurement
    P = Kp * e

    output_value = P

    # output and limit if output_limits set
    lower, upper = output_limits
    if (upper is not None) and (output_value > upper):
        return upper
    elif (lower is not None) and (output_value < lower):
        return lower
    return output_value

if len(Picamera2.global_camera_info()) <= 1:
    print("SKIPPED (one camera)")
    quit()

# Primary (leads)
picam2a = Picamera2(0)
# need buffer_count > 1 because if a frame is skipped, there will be a jump in SensorTimestamp due to dropped frame which messes with the control
config2a = picam2a.create_video_configuration(controls={"FrameRate": 10, "ExposureTime": 100, "AnalogueGain": 22.0,"AeEnable": False,"AwbEnable": False,"AeFlickerMode": 0}, buffer_count=3)
picam2a.configure(config2a)

# Secondary (follows)
picam2b = Picamera2(1)
# need buffer_count > 1 because if a frame is skipped, there will be a jump in SensorTimestamp due to dropped frame which messes with the control
config2b = picam2b.create_video_configuration(controls={"FrameRate": 10, "ExposureTime": 100, "AnalogueGain": 22.0,"AeEnable": False,"AwbEnable": False,"AeFlickerMode": 0}, buffer_count=3)
picam2b.configure(config2b)

# picam2a.request_callback = capture_callback_2a
# picam2b.request_callback = capture_callback_2b
picam2a.start()
picam2b.start()

print("Press Ctrl+C to exit")
try:
    while True:
        job_a = picam2a.capture_request(wait=False)
        job_b = picam2b.capture_request(wait=False)
        request_a = picam2a.wait(job_a)
        request_b = picam2b.wait(job_b)
        metadata_picam2a = request_a.get_metadata()
        metadata_picam2b = request_b.get_metadata()

        timestamp_picam2a = metadata_picam2a["SensorTimestamp"] / 1000  #  convert ns to µs because all other values are in µs
        timestamp_picam2b = metadata_picam2b["SensorTimestamp"] / 1000  #  convert ns to µs because all other values are in µs
        timestamp_delta = timestamp_picam2b - timestamp_picam2a

        controller_output_frameduration_delta = int(P_controller(0.05, 0, timestamp_delta, (-10000, 10000)))
        control_out_frameduration = int(metadata_picam2a["FrameDuration"] + controller_output_frameduration_delta)
        print("FrameDurationDelta: ", controller_output_frameduration_delta, "new FrameDurationLimit: ", control_out_frameduration,metadata_picam2a['FrameDuration'],metadata_picam2b['FrameDuration'])

        with picam2b.controls as ctrl:
            # set new FrameDurationLimits based on P_controller output.
            ctrl.FrameDurationLimits = (control_out_frameduration, control_out_frameduration)

        last_frame_duration = control_out_frameduration

        if abs(controller_output_frameduration_delta) <= 1000:

            # Save images with timestamp as filename
            filename_a = f"a/image_cam_a_{int(timestamp_picam2a)}.jpg"
            filename_b = f"b/image_cam_b_{int(timestamp_picam2b)}.jpg"
            request_a.save("main",filename_a)
            request_b.save("main",filename_b)
            print(f"Images saved: {filename_a}, {filename_b}")
            request_a.release()
            request_b.release()

except KeyboardInterrupt:
    print("got Ctrl+C, exiting")

picam2a.stop()
picam2b.stop()

Hi, it's difficult to know what's happening. If the sensor timestamps are close, then I'm struggling to see why there should be such a difference.  Just to be sure I'm understanding, you're saying that timestamp_delta is less than 200, but that you get images like the ones you attached, showing a ~12ms difference on the clock.
Can you just confirm, is the stopwatch located in the same place in both camera images? With the HQ cam using a rolling shutter sensor, this would make a difference.

Hi, it's difficult to know what's happening. If the sensor timestamps are close, then I'm struggling to see why there should be such a difference. Just to be sure I'm understanding, you're saying that timestamp_delta is less than 200, but that you get images like the ones you attached, showing a ~12ms difference on the clock.
Can you just confirm, is the stopwatch located in the same place in both camera images? With the HQ cam using a rolling shutter sensor, this would make a difference.

Hi Davidplowman, thanks for your replying.
Yes, the time difference on the clock is obviously larger than timestamp_delta. And the stopwatch is basically the same place on camera image to prevent rolling shutter issue.
BTW, this repo can catch exactly same stopwatch by adjusting capturing time and framerate (https://github.com/inastitch/raspivid-inatech) with two HQ cameras. But the library (MMAL) is too old and out of support currenlty.
In MMAL, pts uses camera clock (or GPU clock) as baseline while in libcamera or Picamera2, pts uses Pi system linux time as baseline. Will that make some differences on time accuracy?


Support For expo-media-library

hi can we support use of expo-media-library Version 12.1.2?

Hi! The current version for expo-media-library is 15.0.0 (i just realized i put bad the version in the readme.md, will change that). For what reason you need that specific version? Change the 15.0.0 to an older version probably affect the picker and downgrade the performance

Hi, i just realized maybe you want an older version of expo-media-library because thats depends of your expo version.
Then, i released the 4.7.2 using expo-media-library as a peer dependency, feel free to use the expo-media-library in any version
Let me know if that works

hi @mdjfs thank you alot, yes yes is working i was able to build my projects already. for the past year i have been serching for multiple upload image in expo. your is the very best thank you alot. i am using bare workflow ejected from managed. i dont know why i force install expo-media-library using 15.0.0. when try run the projects it give me error Execution failed for task ':expo-media-library:compileDebugKotlin'.

hmmm. Is weird, but well, if works nice with an older version great! I'm very glad to contribute. And also i'm open to new features if them are necessary and easy to do.
Thank you for you feedback! Happy coding


Local Storage files return 403 even with access token

To Reproduce

Install App through Docker and use LocalStorage
Sync Storage
It can display image on website, cookie validated is a possibility
It returns 403 through curl with auth token

curl -H 'Authorization: Token ***' 'http://localhost/data/local-files?d=mybucket/test.jpg'

Then it works as expected when visit a uploaded file via web UI
curl -H 'Authorization: Token ***' 'http://localhost/data/upload/1/test.jpg'

I've checked it on my LS 1.4.1post1 and it works perfectly with this command:
curl -H 'Authorization: Token <token>' http://localhost:8000/data/local-files/?d=dataset1/1.jpg --output image-local.jpg

Today i ran into the same problem.
Accessing the images through the web frontend is no problem, but when I try to access the images through our client it throws a 403 Forbidden. Although token is set in the header.
I have installed Label Studio on our server and it is reachable through the path: https://myserver.com/labeling/
The paths to the images look like this: https://myserver.com/labeling/data/local-files/?d=labeling-dataset/zzw1o3L5.jpg
I have no idea where to start looking why it fails.
The log message only tells me that there is a problem: django.request::log_response::224 Forbidden: /labeling/data/local-files/

All logic for this endpoint can be found here:
https://github.com/heartexlabs/label-studio/blob/develop/label_studio/core/views.py#L179
If this is working when you access it via browser, it means 99% that you make a wrong API request, probably token is bad.

I also meet the same problem like that... and I try change login account to switch diff Token, It fail too.Importantly, It work yesterday!!  :-(
HOSTNAME = "http://<IP_ADDRESS>:8802"
APIKEY = "c9524eca2db027d71d4f1d2cb5b1a5e3d6b72183"

import requests
import numpy as np
import cv2

def url2image(url, hostname, access_token) -> np.ndarray:
    headers = {'Authorization': 'Token ' + access_token}
    r = requests.request("GET", url=hostname + url, headers=headers)
    r.raise_for_status()
    image = cv2.imdecode(np.frombuffer(r.content, np.uint8), cv2.IMREAD_COLOR)
    assert image is not None, "image is None"
    return image

frame = url2image("/data/local-files/?d=project/000003.jpg", HOSTNAME, APIKEY)

I'm sure this happens when you load image files using local storage, and it's normal to load image files using upload

Has the same issue, 403 error for call with auth tocken

6 months have passed and the problem is still not solved

Change 2  rows
from this  https://github.com/HumanSignal/label-studio/pull/4698/files/ee05d93856637cbd7673c723af29d6f3dafdcf0c


Orv2 519 new: Changes for Authentication, GetRoles, Getcompany and Authorization

Description

Added authentication in the middleware. To ease testing if no token is passed then a demo token is assigned which is(token expiry is disabled for now, userGUID is: 06267945F2EB4E31B585932F78B76269 ).

getRoles:

following scenarios have been  implemented:
/users/roles?companyId=''&userGUID=''
If userGUID is not given then login user guid will be taken.
If companyId is not given then user roles will be returned from user table else Company User roles are returned.

getCompany:

/companies?userGUID=''
If userGUID is given then companies are returned for that user else companies are returned for logged in user.

Get /users: returns logged in user's details if they have READ_SELF role.

Fixes # (issue)
ORV2-456, ORV2-519 and ORV2-581
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

[ ] Unit tested using postman.

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] Any dependent changes have already been accepted and merged

Further comments

Thanks for the PR!
Any successful deployments (not always required) will be available below.
Backend - Vehicles available
Frontend available
Once merged, code will be promoted and handed off to following workflow run.
Main Merge Workflow

Closing this one. Will create a new PR.


Ability to manually modify scores

We have run only a single CTF with the platform so apologies if I am speaking garble :smiley:
During the course of the competition there was some issues with the questions that meant answers were not being accepted and thus users being shut out of the questions. It would have been really useful if we could have modified the users score manually through the admin interface or reset their attempts manually.
There is also a use case where we might want to award teams additional points for certain things (such as a really interesting method) that could be in scope for this request.
Thanks anyway for reading this and making a great CTF platform.

I think resetting attempts is doable by allowing an interface to delete wrong key submissions. There should be a route to do this but I will improve the UI for it and add it if it isn't already implemented.
As for awarding additional points it will likely be a little tricky as CTFd calculates scores based off of the Challenge value.
The best approach might be to create a new table which is taken into account on top of score...

Thanks that sounds great. The additional score is low priority if we can remove incorrect answers. It is an edge request that is only needed if the challenge is not setup correctly.

You can delete wrong keys and solves since commit 44d1ea300bbde367d3fe90b5281ce13c005ff378

We used a "bonus" category with varying point values to do some of this. We awarded bonuses for "wrote custom tooling", "newbie to CTF", and "teamup with a non-tech person". =)


repository page ui fixed

Related Issue(s)
Fixes # Resolves # Closes #
Proposed Changes

[x]

Checklist

[x] I have followed the repository's contribution guidelines.
[x] I have added necessary documentation or updated existing documentation.
[x] My code follows the established code style and formatting of the project.
[x] I have tested my changes and they function as expected.
[ ] I have added suitable unit tests (if applicable).

Screenshots

To-Do

[ ]

Additional Information

@techyNonso this code has been already merged.


[Docs] Add docs and README for MinkUnet

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Please describe the motivation of this PR and the goal you want to achieve through this PR.
Modification
Add docs and README for MinkUnet.
BC-breaking (Optional)
Does the modification introduce changes that break the back-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.12 out of 13 committers have signed the CLA.:white_check_mark: SekiroRong:white_check_mark: xizaoqu:white_check_mark: JingweiZhang12:white_check_mark: triple-Mu:white_check_mark: Xiangxu-0103:white_check_mark: 404Vector:white_check_mark: roger-lcc:white_check_mark: ZCMax:white_check_mark: ZLTJohn:white_check_mark: Ginray:white_check_mark: sunjiahao1999:white_check_mark: filaPro:x: vansinvansin seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


markdown.copyFiles.destination variables not working?

Testing #183682
Not sure what's happening, but none of the "document" variables work for me. Example

That is pasted as this

So it saw "images" but not the second component. All of the other "document" variables are ignored similarly

Thanks for testing. There's a bug when the variables are in the last part of the path (the file name). Will fix this but you can also test variables in other parts of the path, such as images/${documentFileName}/


can we change font-family of the selected text

@hammyhamza I will add a feature for this to my to do list.

@hammyhamza I have added a font button to the toolbar so that the font-family can now be changed. There is currently a limited amount of fonts but adding more fonts/custom fonts is on my list of things to do.


Issue: Stuck on Last Page During Screenshot Capture

Description:
The program encounters an error when taking screenshots on the last page (Page 248, Index 470) of a Kindle book. Instead of navigating to metadata creation, it becomes stuck, continually taking screenshots. The issue appears related to the inability to properly navigate past the last page.
Details:
Index: 470
Page: 248
Total Pages: 248
Screenshot Path: out/B0CHVWN7QG/pages/470-248.png

Error Message:

unable to navigate to next page; breaking... locator.click: Target page, context or browser has been closed
Call log:
  - waiting for locator('.kr-chevron-container-right')

node:internal/process/esm_loader:48
      internalBinding('errors').triggerUncaughtException(
                                ^

locator.textContent: Target page, context or browser has been closed
    at getPageNav (/home/user/Documents/kindle-ai-export/src/extract-kindle-book.ts:173:8)
    at main (/home/user/Documents/kindle-ai-export/src/extract-kindle-book.ts:258:27)
    at <anonymous> (/home/user/Documents/kindle-ai-export/src/extract-kindle-book.ts:450:1)

Steps to Reproduce:
Run npx tsx src/extract-kindle-book.ts.
It reaches the final page (248 of 248).
Program attempts to navigate further and gets stuck in an infinite screenshot loop.

Expected Behavior: After reaching the last page, the program should proceed to metadata creation and gracefully exit without trying to navigate further.
Potential Cause: The issue may be caused by an unsuccessful attempt to click on a navigation element (.kr-chevron-container-right) on the last page, which might be unavailable or causing a context closure.
I am not really good at coding but this happened on both mac and linux as well I tried to use bith methods headless and with the GUI browser. Tell me how can I help to fix this.

Fixed this by adding an equal sign to the if statement on line 262.
  do {     const pageNav = await getPageNav()     if (pageNav?.page === undefined) {       break     }     if (pageNav.page >= totalContentPages) {       break     }
Added this and some other edits to [this fork](https://github.com/elementT1000/kindle-ai-export/tree/exponential-scaling). Let me know if it works for you :)


Tags for Docker images and Helm charts

I'm starting to make Docker images and Helm charts (actually I'm extending @danielfrg's work) and I'll soon have to make tags for those other than latest.
How should we tag these?
Also are there any standards or conventions that we should apply to the images or helm charts?
cc @jakirkham

Also, we're currently hosting a Helm repository at https://dask.github.io/helm-chart .  I chose the helm-chart name by copying JupyterHub.  This might not be the appropriate name though.  helm-charts ?  charts?

The dask name is taken on DockerHub.  Do we know any ways to obtain names that are already taken but inactive?  https://github.com/docker/hub-feedback/issues/1124

I think the version number of the main project, that is dask. Possibly with an additional docker image / helm chart release number appended at the end.
I am not familiar with the best practices of the kubernetes community.

The dask name is taken on DockerHub.

FYI, I created a daskdev account on dockerhub a while ago (for @danielfrg's work). Happy to give others permission: (https://hub.docker.com/u/daskdev/).

We versioned them by git commit in docker-stacks. Its a bit granular, but this way you know what you are getting.
ref: https://github.com/jupyter/docker-stacks/wiki/Docker-build-history

Going with @ogrisel 's suggestion: I think the version number of the main project, that is dask.


Tests for Issue #240 in JSON-Java

So this includes 2 changes:

Updates the build.gradle and the source folder locations to match the default gradle configuration. This makes it easier to get imported into IDE tools like Eclipse or Netbeans.
Adds a test case that cycles through all the control characters as defined in RFC 7159 and verifies the validity of each character. The ones that don't pass are \0, \n, and \r. The test case verifies these failures as well

Clearly documents the actual behavior. Look good, thanks. Would you please also update the README in the pull request, which I think is no longer accurate?

that should fix the paths. Also added the Unix type commands


#0: Add TG ResNet-50 Demos with Traced and Eager Execution on 2 CQs

Ticket
Link to Github Issue
Problem description

2 CQ Resnet 50 perf tests need to be added to TG pipelines, now that this feature is enabled.
Recent 2 CQ on TG PR reduced the number of prefetch queue entries across all systems, since 2 CQs on Galaxy needs a
smaller prefetch q. This should not be done for all systems, only for Galaxy.

What's changed

Add 2 CQ TG Resnet perf tests.
Make the prefetch_q_entries_ computation a function of the system
Allow the static dispatch_constants object to be toggled during device init, based on the number of CQs. This was
blocking dynamically modifying CQs in a workload on TG

Checklist

[ ] Post commit CI passes
[ ] Blackhole Post commit (if applicable)
[ ] Model regression CI testing passes (if applicable)
[ ] Device performance regression CI testing passes (if applicable)
[ ] New/Existing tests provide coverage for changes

Passing Post Commit: https://github.com/tenstorrent/tt-metal/actions/runs/11188114706
Passing T3K Model Perf: https://github.com/tenstorrent/tt-metal/actions/runs/11188116278


Make use of the new 1.16 features

1.16 brought new tools, so naturally they need to be used immediately! :smile:

Added the relevant changes from https://github.com/KSP-CKAN/NetKAN/pull/2475 with the appropriate spec_ver. Closes https://github.com/KSP-CKAN/NetKAN/pull/2475.

Sure, let's use the new features and merge this in with my thanks.


Needs start stream button/function

This is great but the one thing that would make it extremely useful would be a start/stop stream button somewhere. Otherwise all it does is switch between scenes.

This would definitely be a huge plus to the interface. You are the man, t2t2!

I agree, this is great and works beautifully but start/stop is really needed as well.

Sorry to bump with nothing but a +1, but... +1.  Having stream start/stop buttons is the only thing preventing me from using this for remote streaming.

Love this tool. This feature would be perfect.
+1!

Now available with the modular update (layout edit mode -> add panel -> stream status)

NICE!
Thanks @t2t2


error after run command "ant setup-libs"

D:\XMPP\jitsi-android-master\jitsi-android-master>ant setup-libs
Buildfile: D:\XMPP\jitsi-android-master\jitsi-android-master\build.xml
define-jarjar:
create-asset-dex:
[getbuildtools] Using latest Build Tools: 18.1.0
[delete] Deleting directory D:\XMPP\jitsi-android-master\jitsi-android-master\bin\asset-libs
[copy] Copying 20 files to D:\XMPP\jitsi-android-master\jitsi-android-master\bin\asset-libs
[jarjar] Building jar: D:\XMPP\jitsi-android-master\jitsi-android-master\bin\asset-libs\protocol-sip.jar
[jarjar] Building jar: D:\XMPP\jitsi-android-master\jitsi-android-master\bin\asset-libs\smacklib.jar
[jarjar] Building jar: D:\XMPP\jitsi-android-master\jitsi-android-master\bin\asset-libs\protocol-jabber.jar
[dex] input: D:\XMPP\jitsi-android-master\jitsi-android-master\bin\asset-libs
[dex] Converting compiled files and external libraries into D:\XMPP\jitsi-android-master\jitsi-android-master\bin\jitsi_bundles_dex_dir\classes.dex...
[dx] 'E:\Program' 不是内部或外部命令，也不是可运行的程序
[dx] 或批处理文件。
BUILD FAILED
D:\XMPP\jitsi-android-master\jitsi-android-master\build.xml:152: null returned: 1
Total time: 2 seconds
D:\XMPP\jitsi-android-master\jitsi-android-master>

D:\XMPP\jitsi-android-master>ant setup-libs
Buildfile: D:\XMPP\jitsi-android-master\build.xml
BUILD FAILED
Target "setup-libs" does not exist in the project "LauncherActivity".
Total time: 0 seconds

Please note this project has been unmaintained for a while: https://github.com/jitsi/jitsi-android#unmaintained

@hnyashiro , Did you have this problem?
$ ant setup-libs -Dsdk.dir=$ANDROID_HOME
Buildfile: /home/felix/workspace/jitsi-android-459below/build.xml

BUILD FAILED
/home/felix/workspace/jitsi-android-459below/build.xml:49: Cannot find /home/felix/Android/Sdk/tools/ant/build.xml imported from /home/felix/workspace/jitsi-android-459below/build.xml

Total time: 0 seconds

I think this is the problem https://github.com/processing/processing-android/issues/307
What sdk version do you using?

https://stackoverflow.com/a/42921645/1172714
You are correct: Google removed the ant build system from Android SDK 25.3.0.  You either need to use an older Android SDK which still includes the ant scripts, or you need to update jitsi-android's build to use Gradle.


Use specified host and port, even when socket.io is not initially available

Closed due to inactivity for 3 years. Lol.


Fix auto container rebuilds

Since ansibleapp assets got moved back to this repo, automated builds and pushes for relevant containers are broken. Needs to get fixed.

Related: https://github.com/fusor/ansibleapp-library/issues/37

https://github.com/openshift/ansible-service-broker/pull/240

Proposed work

Automated builds for source

#240

Automated builds for binary

Fixed with jenkins/dockerhub builds.


Add unit test for ThreadPoolStatusChecker

What is the purpose of the change
Add unit test for ThreadPoolStatusChecker

Codecov Report

Merging #7899 (a251475) into master (e845e16) will increase coverage by 0.87%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #7899      +/-   ##
============================================
+ Coverage     59.28%   60.15%   +0.87%
- Complexity      529      544      +15
============================================
  Files          1077     1089      +12
  Lines         43565    43811     +246
  Branches       6368     6370       +2
============================================
+ Hits          25826    26353     +527
+ Misses        14879    14518     -361
- Partials       2860     2940      +80

Impacted Files
Coverage Δ

...ntext/event/AwaitingNonWebApplicationListener.java
48.48% <0.00%> (-24.25%)
:arrow_down:

.../dubbo/remoting/transport/MultiMessageHandler.java
80.00% <0.00%> (-20.00%)
:arrow_down:

...bo/rpc/cluster/support/FailbackClusterInvoker.java
52.45% <0.00%> (-18.04%)
:arrow_down:

...va/org/apache/dubbo/rpc/support/ProtocolUtils.java
61.53% <0.00%> (-8.03%)
:arrow_down:

...dubbo/remoting/exchange/support/DefaultFuture.java
79.64% <0.00%> (-7.54%)
:arrow_down:

...mmon/threadpool/support/fixed/FixedThreadPool.java
80.00% <0.00%> (-7.50%)
:arrow_down:

...bbo/config/bootstrap/builders/ConsumerBuilder.java
93.10% <0.00%> (-6.90%)
:arrow_down:

...moting/transport/netty4/NettyEventLoopFactory.java
30.00% <0.00%> (-6.37%)
:arrow_down:

...apache/dubbo/rpc/cluster/support/ClusterUtils.java
60.00% <0.00%> (-6.04%)
:arrow_down:

...apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java
72.22% <0.00%> (-5.56%)
:arrow_down:

... and 127 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e845e16...a251475. Read the comment docs.


I don't know how to use this code

Thanks a lot for your work. But I don't know how to use this code, it does not like python main.py?

Hi, thank you for appreciating the code in this repository. The code that contains the layer to compute Wasserstein distances is in layers.py, and an example on how to use it is in the notebook sinkhorn.ipynb. Perhaps this could work as a guide to incorporate it into your own work.


change ref font-size

Changes the ref font size to match the rest of the body text:

@bwbaker1 let us know if this is the change you're expecting for the font size. The size is now the same for both the view and the PDF mode. The spacing you see in the screenshot above is no longer hardcoded.


How to use the Nordic UART Service

I use this Nugget to connect my Crossplatform App with a Bluefruit Feather. I programmed the Bluefruit device to receive and send a message. With the "UUID 6E400001-B5A3-F393-E0A9-E50E24DCCA9E" I get the Nordic UART Service and the TXCharacteristic with "6E400002-B5A3-F393-E0A9-E50E24DCCA9E" and the RXCharacteristic with "6E400003-B5A3-F393-E0A9-E50E24DCCA9E".
The TXCharacteristic has CanWrite = true, CanRead = false, CanUpdate = false
The RXCharacteristic has CanWrite = false, CanRead = false, CanUpdate = true
I thought that by writing data in the TXCharacteristic I would read the answer in the RXCharacterisitic but I don't know how to make it work

Im assuming that you have to subscribe to notifications on the RXCharacteristic and start notifcations for it. Once you write something on TX a notification event will return on RX with the result.

How do I subscribe for notifications on a characterisitic?
All I did with the RXCharacterisitic was to copy the code of the notifications and the use the WriteAsync in the TXCharacteristic
characteristic.ValueUpdated += (o, args) =>
{
var bytes = args.Characteristic.Value;
};
characteristic.StartUpdates();

So this does not work? What does your Output say (most send/receive events are traced to the console by the library)?

I successfully write in the TXCharacteristic but the value of the RXCharacteristic never changes, this is the part of my code when I try to use the service

Any news? Did you manage to get it working? What does your output log say?

What are you trying to achieve here? Where is your code of your microcontroller with the bluefruit? maybe there is something going on.

BTW, on Android I got the issue that the characteristic.StartUpdates() only starts updating in about 50% of the cases. I have no clue why and couldnt get any idea from your characteristic implementation.
What I did to solve this is to use await Task.Delay(2000); and call StartUpdates() again.

@DumDumin I've also noticed this start notifications issue. The cause seemed to be not waiting for the descriptor write gatt callback and the immediatly executing a new ble command. It's been fixed now with the introduction of Descriptor read.write async operations.

@DumDumin Can you please try it with the latest release beta5 or 1.1.0.
await characteristic.StartUpdatesAysnc();

otherwise we will close this issue after 8 days without response

@machohv Hi! Hola macho. Did you fix this issue with the BLE plugin in xamarin forms? I have the same BLE device and i am having trouble reading the correct RX value that is being sent from the BLE device. If you solved it i would be very happy to see how you did it ! :)

@machohv I am verry interested in your code, because I too am working on bluetooth communication with a nordic device.

At the end my code worked like this

I was hoping for a bit more code, like how you setup the bluetooth and everything :)

What exactly does this code do? does it send back what it receives ?


Update http4s-client, http4s-dsl, ... to 0.21.19

Updates

org.http4s:http4s-client
org.http4s:http4s-dsl
org.http4s:http4s-okhttp-client

from 0.21.7 to 0.21.19.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, semver-patch

Codecov Report

Merging #191 (5e1fe16) into master (e31fc88) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #191   +/-   ##
======================================
  Coverage    0.00%   0.00%
======================================
  Files          24      24
  Lines         234     234
  Branches        9       9
======================================
  Misses        234     234

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e31fc88...5e1fe16. Read the comment docs.


Bower package

I could not find a bower package for this script. It would be handy to have one. I can help with registering one.

It's on NPM now, as that's where we've standardized our package distribution overall across projects. Closing out without fixing but thanks for the feedback.


[POAE7-555] [OAP-CACHE] package redis related dependency

What changes were proposed in this pull request?
package redis related dependency

@jikunshang @winningsix @haojinIntel Please take a review thanks.


Antennas in flight don't get ripped off by high Q

The Kerbalism Antenna module does not have a max pressure/Q value which results in antennas being indestructible to aero forces unlike stock, removing some of the balance between fixed and deployable antennas

You are right. That is a consequence of the use of ModuleAnimation*, instead of ModuleDeployable*. Apparently, the atmosphere breaking is implemented by the latter.


feat: Add a read-only TileDB backend

Add TileDB backend using plugin architecture
Add backend tests (82% coverage for xarray/backends/tiledb_.py)
Add dask/distributed integration tests for both integer and datetime
TileDB dimensions.

[x] Closes #4987
[x] Tests added
[ ] Passes pre-commit run --all-files
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

Hello @jp-dark! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file xarray/backends/__init__.py:

Line 17:1: F401 '.tiledb_.TileDBDataStore' imported but unused

In the file xarray/tests/test_distributed.py:

Line 16:1: F401 'xarray.tests.test_backends.create_tiledb_example' imported but unused
Line 16:1: F401 'xarray.tests.test_backends.create_tiledb_datetime_example' imported but unused
Line 190:57: F811 redefinition of unused 'create_tiledb_example' from line 16
Line 203:5: F811 redefinition of unused 'create_tiledb_datetime_example' from line 16


feat: Paid Mint modal, skeleton title to "Uploading data to IPFS"

PR Type

[ ] Bugfix
[x] Feature
[ ] Refactoring

Context

[x] Closes #9371

Needs Design check

@exezbcz please review

Did your issue had any of the "$" label on it?

[x] Fill up your DOT address: Payout

Screenshot 📸

[x] My fix has changed something on UI;

nice one, thanks!
pay 20 usd

😍 Perfect, I’ve sent the payout
💵 $20 @ 7.64 USD/DOT ~ 2.618 $DOT
🧗 16faLfsywwNATaEfbH2ah75dn6ZmctQWpMS5G4KFhbmj5hnD
🔗 0x4f3de69934a6bec79382db5f0e45a3ba5a39e100809222f710a465bddfe95364
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


docs(Build): Provide helpful error message when docker is not available

When running npm run commit.

Addresses #7


解决目前master分支的一些小bug

1.解决几个NullPointerException异常问题
2.解决2个类属性命名规范问题
3.处理没有关闭response.body()的异常问题

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.BaoZZ seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

the NPE have been resolved, so plz merge master and redo pull request, tks


[v2.8] [RKE] Bump Components in rke-tools and confd

Backport of https://github.com/rancher/rancher/issues/46050

Changes merged in KDM dev-v2.8 and Tagged RKE RC v1.5.11-rc5

https://github.com/rancher/rancher/pull/46118

Validated on rancher v2.8-head

Created RKE1 node driver v1.28.11-rancher1-1 cluster(1-cp, 1-e, 1-w) using docker 25
Created RKE1 node driver v1.27.15-rancher1-1 cluster(1-cp, 1-e, 1-w) using docker 24

Clusters provisioned successfully also validated etcd backup restore on both the clusters and it was successful.


Device Nicknames - Ability to Edit

It would be useful if I could change the nicknames for my devices. For example, I recently moved some of the extensions around on my SPA phone so the device that is nicknamed "SPA525G Line 2" is now on line 1. Ideally I would like to rename it accordingly.

@2rc thanks for a hint. Will take a look at it.

@2rc Done.


no thumbnail navigation in test-viewer

in old viewer, doubleclicking on thumbnail navigated to that image. In test-viewer, no navigation from thumbnails seems to be possible (testing on item LB2/92PIX01) (firefox 45.0.2 / Mac OSX 10.11.4, also Safari Version 9.1 (116<IP_ADDRESS>))

This is really odd. That functionality works in development but seems to break when I package up the application for deployment. Looking in to it now.


bug(fix): fix email notification

What does this PR do?

This PR ensures email notification is working and all the feedback given is implemented

Description of Task to be completed?

fix email notification
ensure all naming convention is in line with airbnb
update client-side test to test for more detailed property

Coverage decreased (-0.4%) to 84.807% when pulling 66b9a10839f33d94bccb1cfa79ba526b71da17a2 on feature/second-feedback-implementation into b0d0da236cb0f8855e0e2e43c54a6afb88d25df8 on chore/feedback-implementation.

Coverage decreased (-0.4%) to 84.807% when pulling d0bf6c7f402a326855e2bc87466e7e73d105ca9b on feature/second-feedback-implementation into b0d0da236cb0f8855e0e2e43c54a6afb88d25df8 on chore/feedback-implementation.


Running Snakemake with slurm executor returns AttributeError

Running
snakemake --executor slurm --default-resources slurm_account=<your SLURM account> slurm_partition=<your SLURM partition> --jobs 10 --runtime 2880
Returns the error
AttributeError: 'StorageProviderProxy' object has no attribute '__name__'. Did you mean: '__ne__'?

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/cli.py", line 2014, in args_to_api
    dag_api = workflow_api.dag(
              ^^^^^^^^^^^^^^^^^

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/api.py", line 334, in dag
    return DAGApi(
           ^^^^^^^

  File "<string>", line 6, in __init__

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/api.py", line 439, in __post_init__
    self.workflow_api._workflow.dag_settings = self.dag_settings
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/api.py", line 384, in _workflow
    workflow = self._get_workflow()
               ^^^^^^^^^^^^^^^^^^^^

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/api.py", line 399, in _get_workflow
    return Workflow(
           ^^^^^^^^^

  File "<string>", line 20, in __init__

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/workflow.py", line 200, in __post_init__
    self._storage_registry = StorageRegistry(self)
                             ^^^^^^^^^^^^^^^^^^^^^

  File "/home/elt8256/miniforge3/envs/snakemake-dummy/lib/python3.12/site-packages/snakemake/storage.py", line 37, in __init__
    def __init__(self, workflow: Workflow):

SystemError: <sys.legacy_event_handler object at 0x2b85c302b7f0> returned a result with an exception set

The error is only returned once the --runtime argument is added. The same command is able to be run from a different computer onto the same cluster. Could this be a version issue? And if so, how do I upgrade/downgrade snakemake versions within the same conda environment?

It was the snakemake version


Add a more descriptive error message on redux prop set.

Per #55.

@brettburley I think this one is fairly straight forward :) thanks for making a more useful error message!


[3848] Backfill UKPRN on provider

Context
We have a UKPRN field on Provider but not all providers currently have one. We need them to for the DQT API interaction.
Changes proposed in this pull request
Copy over the UKPRNs from the DTTP table. Presence validation and DB contstraint hasn't been added here but will be as part of another ticket.
Guidance to review
I ran this against a local sanitised production copy. You could do the same if you feel so inclined. Spoilers... it did fill in all of the missing ones. We are however relying on the DTTP data being correct which could be mildly contentious.
Important business

~Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?~
~Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?~

 Backfill missing UKPRNs


styleguide

Changelog

Update code w/ consistant rubocop styleguide

Coverage decreased (-0.0%) to 99.56% when pulling 383fb071bac286c439c632d00f4d5ac5b17fdcf8 on styleguide into 04ea4501c5e9cbb90e6b5f4e0bef31cfcae66f59 on master.

Coverage decreased (-0.0%) to 99.56% when pulling 383fb071bac286c439c632d00f4d5ac5b17fdcf8 on styleguide into 04ea4501c5e9cbb90e6b5f4e0bef31cfcae66f59 on master.

Coverage decreased (-0.0%) to 99.56% when pulling 2f3c50d1c4f59beec35ba53f46ecfd5902cd0597 on styleguide into 04ea4501c5e9cbb90e6b5f4e0bef31cfcae66f59 on master.

Coverage decreased (-0.0%) to 99.56% when pulling 83ccdbf3e5fa54650e919e55ef2f2bb42757aae8 on styleguide into 04ea4501c5e9cbb90e6b5f4e0bef31cfcae66f59 on master.


fix(Gamut): vague attempt: added setValues back to all GridForm fields

Vague attempt: added setValues back to all GridForm fields
Description

Merging your changes
When you are ready to merge to master and publish your changes, use the "squash and merge" button in GitHub, and follow the PR Title Guide to format your PR title and write your PR merge description.
IMPORTANT: If your PR contains breaking changes, please remember to follow the instructions for breaking changes!

📬Published Alpha Packages:@codecademy/brand-components@1.2.4-alpha.fc1370.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5eac47941086075cfe3626c6--codecademy-styleguide.netlify.appDeploy Logs

This didn't work. Alas.


Add urlAsString validator

Added urlAsString validator that validates URLs in string representation. Uses the new URL() constructor instead of regex.

Codecov Report

Merging #17 into master will decrease coverage by 0.74%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##           master      #17      +/-   ##
==========================================
- Coverage     100%   99.25%   -0.75%
==========================================
  Files           2        2
  Lines         260      268       +8
  Branches       34       35       +1
==========================================
+ Hits          260      266       +6
- Misses          0        1       +1
- Partials        0        1       +1

Impacted Files
Coverage Δ

packages/toix/index.ts
96% <75%> (-4%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2aabc25...99402c9. Read the comment docs.


How to get a bone vector after qpos value has changed?

Hi,
I'm a student and I'm trying to use MuJoCo, to model a humanoid. Currently I am using the cmu_humanoid from dm_control
I understand that each body is wrt to a parent, and have axis defined wrt to the parent.
Suppose I want a vector for a bone how can I get that vector?
consider that snippet below

Here the ltibia(the knee) is child of lfemur (near the pelvis)

at the T-pose(which this image is in) the lfemur to ltibia is a vector in -y direction (wrt parent i.e lfemur), suppose that we change the qpos of lfemur, the axis of lfemur will also change (and the new vector from lfemur to ltibia will still be in the -y direction)
But if I want the new vector from lfemur to ltibia wrt to the original axis of lfemur, how can I obtain it? (does mujoco by default provide it?)

Thanks for the reply @Balint-H. I don't fully understand what your trying to say could you elaborate a bit more?
What I understood is I have to store the original quaternion, then compare that with the current quaternion, so that will give me the relative rotation. I don't understand there after what do you mean by apply the difference?
Also I am not sure but I think this will work only on a single bone at a time. What if I want to apply this on all the bones?
i.e I move a bone let's say the upper arm, now the forearm is pointing at a direction wrt it's local axis (and will always point at that direction unless the forearm's qpos is changed). So this is the original vector then when we change the qpos of the forearm we get a new vector wrt to the local axis (this is what we are interested in). Now due to this changes the wrist will also be in a new position but this is the initial position then when we change the qpos of the wrist that will be the new vector for the wrist.
I get that we store the quaternion but won't that quaternion change as we move one bone after the other? (I guess in some sense the xquat will come in handy but can't figure out how)

Sorry for the vague terminology!
Local quaternions are the "difference" of 2 global quaternions, let's call it q_local = q_child * q_parent^-1. You are interested in what the current local quaternion is compared to the starting local quaternion (which will be a "difference" as well), i.e. q_rel_t = q_local_t * inv(q_local_t0) .
I'm putting "difference" in quotes as "quaternion difference" may refer to another concept as well, here I just meant multiply a quaternion by the inverse of another.
By "applying" a rotation to a vector, I just mean to rotate a vector by it. If you are in your resting position q_rel will be the identity quaternion, and will not move your -y vector. At any other time, if you rotate your -y vector with q_rel_t, it will give you the direction the femur is pointing described in the current pelvis frame.

@Balint-H Thanks for the detailed explanation. It makes sense to me now. Also correct me if I am wrong q_local_t0 is the same as model->quat right?

That's my expectation, but please double check that.


auto trigger change

when change a field value
currently:
$("#id").val("newVal").trigger("change");
could it be auto(no need for me to type .trigger("change") to reflect change):
$("#id").val("newVal");
thanks

Select2 does not control the .val() method, so it has to detect changes based on the standard change event that browsers will trigger when the value has changed. We have no interest in patching it to trigger the event either, as that would cause far more issues.


Deprecated Spring IoC and using Guice instead

Signed-off-by: Peng Huo<EMAIL_ADDRESS>Description

Remove the depedency on spring-beans, spring-ontext and spring-test.
Using Guice from OpenSearch instead.

Issues Resolved
#741
Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1177 (95ba0b4) into main (5073215) will decrease coverage by 35.54%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##               main    #1177       +/-   ##
=============================================
- Coverage     98.31%   62.76%   -35.55%
=============================================
  Files           342       10      -332
  Lines          8701      658     -8043
  Branches        554      119      -435
=============================================
- Hits           8554      413     -8141
- Misses          142      192       +50
- Partials          5       53       +48

Flag
Coverage Δ

query-workbench
62.76% <ø> (?)

sql-engine
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...rage/implementor/PrometheusDefaultImplementor.java

...opensearch/sql/data/model/ExprCollectionValue.java

...ql/opensearch/response/agg/MetricParserHelper.java

.../opensearch/sql/planner/physical/EvalOperator.java

...cript/filter/lucene/relevance/MultiFieldQuery.java

...ch/sql/opensearch/client/OpenSearchRestClient.java

.../java/org/opensearch/sql/data/model/ExprValue.java

...nsearch/sql/expression/aggregation/Aggregator.java

.../lucene/relevance/FunctionParameterRepository.java

...opensearch/sql/exception/QueryEngineException.java

... and 340 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


overflow-y

We have a small issue where not everything is visible on our html page, here is what I mean :

From what I've seen a simple overflow-y : scroll would solve it.

Seems like a swagger-ui issue... Probably should report it on that project.

this may sound weird - I haven't done much swagger, isn't springfox a continuation of swagger?

It can be a little confusing :open_mouth:
Swagger Spec is a specification
Swagger Api - an implementation of that specification that supports jax-rs, restlet, jersey etc.
Springfox libraries in general - is an another implementation of the specification focused on the spring based ecosystem
Swagger.js and Swagger-ui - Are client libraries in javascript that can consume swagger specification
springfox-swagger-ui - the one that you're using most likely based on your issue, is just packaging swagger-ui in a convenient way so that spring services can serve it up.
Hope that helps


How to export only the tags in a .h

Hello, I have this datatype
datatype(
        Detector,
        (ImXpadS70, struct imxpad_t),
        (ImXpadS140, struct imxpad_t),
        (XpadFlatCorrected, struct rectangular_t),
        (Eiger1M, struct dectris_t)
        );

I do not want to expose all the struct in my API but only the enum with all the choices, in order to hide the implementation behind
only a pointer to Detector.
Is it possible ?
thanks

What kind of implementation do you want to hide?

I will think more about my problem, thanks ;)

Closed due to inactivity.
Please let me know if you still have the trouble.


[RFC] OPEA Inference Microservices Integration for LangChain

OPEA Inference Microservices Integration for LangChain
This RFC proposes the integration of OPEA inference microservices (from GenAIComps) into LangChain [extensible to other frameworks], enabling conversational AI, embeddings, and LLM-based applications powered by OPEA services.
Author(s)
Avinash Karani
Raghavendra Bhat
Status
Under Review
Objective
The primary goal of this RFC is to provide a new framework extension called langchain-opea-endpoints that simplifies the integration of OPEA inference microservices. This extension will empower developers to use OPEA services, including chat models, semantic embeddings, rerankers, and LLM inference, within LangChain (This will be extensible to other frameworks).
Motivation
Developers increasingly rely on modular frameworks like LangChain  for LLM applications, embeddings, and search optimization. By integrating OPEA microservices, developers will gain access to unique inference capabilities. This proposal offers feature parity with other industry tools (e.g., Nvidia NIM, AWS Beadrock and OpenAI) while introducing the benefits of OPEA inference.
Design Proposal
Overview of langchain-opea-endpoints Python Package
This package will act as a bridge between OPEA’s microservices and LangChain, providing key functionalities like chat models, embeddings, reranking, and LLM interfaces. It will offer clear APIs and callbacks for seamless integration.

Chat Models (ChatOPEA)

The ChatOPEA   class will serve as the main interface for interacting with OPEA’s conversational models. Like ChatOpenAI, Nvidia’s ChatNVIDIA, it will connect LangChain applications to OPEA-hosted LLM inference service, providing context-aware conversations across domains like support chatbots and virtual assistants.
Example Usage:
from langchain_opea.chat_models import ChatOPEA

chat = ChatOPEA(base_url=http://localhost:8000/v1,model=””, api_key="<none>")

response = chat.invoke("How does LangChain work?")
print(response)

Embeddings (OPEAEmbeddings)

The OPEAEmbeddings class enables semantic embeddings through OPEA microservices, providing highly relevant vector embeddings that extend Hugging Face’s embedding classes [More relevant for TEI based service].
Example Usage:
from langchain_opea.embeddings import OPEAEmbeddings

embedding_model = OPEAEmbeddings(model="opea-embed-v1")
embedding = embedding_model.embed_query("Exploring AI capabilities.")
print(embedding)

Reranker (OPEAReranker)
The OPEAReranker class will provide a document reranking API that integrates OPEA’s ranking microservice. It will allow developers to optimize document retrieval pipelines with contextual re-ranking

from langchain_opea.reranking import OPEAReranker

reranker = OPEAReranker(model="opea-rank-v1")
ranked_results = reranker.rerank(query="AI trends", documents=["AI in healthcare", "AI in robotics"])
print(ranked_results)

LLM Interface (OPEALLM)
This interface will provide completion-based APIs for using OPEA’s LLMs, extending LangChain’s core LLM class. It will facilitate seamless interaction with OPEA’s completion services, similar to Nvidia’s use of the vLLMOpenAI framework.

from langchain_opea.reranking import OPEAReranker

reranker = OPEAReranker(model="opea-rank-v1")
ranked_results = reranker.rerank(query="AI trends", documents=["AI in healthcare", "AI in robotics"])
print(ranked_results)

Callbacks and Monitoring
In LangChain, callbacks and monitoring play an essential role in managing, observing, and optimizing the execution of operations like API calls, model usage, and token consumption. proposed OPEA integration provide several key benefits:

Usage tracking to monitor token consumption and API costs.
Debugging tools to capture errors and trace outputs.
Performance insights to optimize latency and manage workflows.
Workflow triggers to handle multi-step processes and events efficiently.
Custom logging for analytics and audit purposes.

from langchain_opea.callbacks import UsageCallbackHandler

callback = UsageCallbackHandler()
with callback.monitor():
    response = chat.invoke("What is edge computing?")

Alternatives Considered
Using OpenAI Model serving Framework’s langchain interface:
Pros:

OPEA will have full control and scope to add new features.
Even though OPEA microservices API’s or compatible with openAI, Model serving frameworks has additional API for monitoring and auditing Inference. These will not be available with openAI langchain.
Removes guess work for developers to find right langchain class which works for OPEA microservice.
Cons:
Developer needs to update the application code.
Complexity of maintaining python package.

Compatibility
•	Backward Compatibility: This package will extend, not replace, existing LangChain components to ensure no disruption to existing workflows.
•	Workflow Compatibility: OPEA classes will work alongside existing OpenAI interfaces for a smooth developer experience.
Conclusion
This RFC proposes the creation of a langchain-opea-endpoints package that will integrate OPEA microservices with LangChain. This solution will extend the capabilities of conversational AI, embeddings, and LLM-based inference, offering a modular and robust developer experience.
Miscellaneous
Work in progress to support native inference Engines under OPEA without having a model serving framework.

LLM Interface (OPEALLM) seems to have a cut and paste error :-)
Could this code be resident in Langchain repo to increase OPEA visibility. Of course OPEA advertise that it has langchain integration.
If it lives in langchain repo, how do we test it to ascertain OPEA has not broken the intragration? Would they run nightly tests? Would OPEA trigger a test each time its images change for embedder/re-ranker/llm?
How should OPEA monitor if there are changes/new things to support for Langchain?
Do we want to add somewhere that for now the integration spans x, y, z and no audio or video etc.

This package can be unstreamed to Langchain as partner package for joint maintenance. Before langchain accepts this as partner package, we can have this in OPEA repo and maintained for one stable version of langchain.
There are a few different places you can contribute integrations for Lang Chain:
Community: For lighter-weight integrations that are primarily maintained by LangChain and the Open Source Community.
Partner Packages: For independent packages that are co-maintained by LangChain and a partner.


Add matrix for msm8998

This has been done by looking at log history of msm8998.dtsi of when nodes are added
Things I'm not sure:

status-connectivity-ipa: N /// I'm under the impression that msm8996 should have it, but it's N/A, so I'm not sure what it means
smp: msm8996 has the additional comments which might also apply
Is spm the same thing as spmi?
What's sdsp?
Does fastrpc require explicit declaration in dts? I'm not sure what fastrpc is
Does smmu apply to /any/ smmu? All? Maybe they got all merged together i don't know
I merged usb host mode and slave mode since it's a dwc which should be generic, but maybe that's wrong

Thank you for your patches. Let's resolve your questions first.

status-connectivity-ipa: N /// I'm under the impression that msm8996 should have it, but it's N/A, so I'm not sure what it means

we should fix msm8996, indeed.

smp: msm8996 has the additional comments which might also apply

I don't think so, msm8998 didn't have the story of the CBF clock.

Is spm the same thing as spmi?

No, SPM is the SPM / SAW2, a part of the power management. It is handled in a different way on MSM8998, so just ignore it.

What's sdsp?

Sensors DSP aka SLPI.

Does fastrpc require explicit declaration in dts? I'm not sure what fastrpc is

fastrpc is a special interface between userspace and the DSP. It is enabled by the qcom,fastrpc-compute-cb compatible.

Does smmu apply to /any/ smmu? All? Maybe they got all merged together i don't know

Usually yes. There are some platforms where one of SMMU works, other do not. This can be reflected via WIP or status-smmu-comment.

I merged usb host mode and slave mode since it's a dwc which should be generic, but maybe that's wrong

If it really works for you, please. Newer platforms require special handling for the host mode on the Type-C host, that was the reason for the split.

Thanks for your feedback. I think it should be all good now.

If it really works for you, please. Newer platforms require special handling for the host mode on the Type-C host, that was the reason for the split.

Sadly my device (Freebox Devialet) has host-only, so I can't really test slave. However I seem to remember trying slave on fxtec Pro1 and succeeding, but that was a long time ago.

@phhusson thanks, this looks good now.


Test for cache-hit without restoring the files

Is there a way for checking for cache-hits without restoring (downloading) the files?
My understanding now is that testing for a cache-hit and restoring (downloading) the files are coupled and I can't find in the documentation a way of  separating them.
The use case is the following:
I have a centralized workflow operating in the main branch which creates consumption caches to be restored and used for testing on all the other branches. More specifically, the cache creation workflow checks if the dependencies have been updated and creates a new cache if they have and does nothing if they haven't. However, most of the times the dependencies are not updated and the cache ends up restoring the cache for no reason, that is, the restoring operation is wasted in this wokflow. Hence my question above it?
Probably this could be done by listing caches using curl or github-ci in the following way:
https://docs.github.com/en/rest/actions/cache?apiVersion=2022-11-28#list-github-actions-caches-for-a-repository
But I wanted to know if it could be done with this action.

Ah, it seems that this could be addressed by:
https://github.com/actions/cache/pull/1095

H @h-mayorquin,
Thanks for surfacing this request. As you mentioned we have a similar request tracked in #1095. You can track the progress for this ask there. Resolving this issue. Please create a new one for further queries.


Update overview.md

Docs Build status updates of commit 9ed0a6a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/overview.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Touch UI for me-datepicker has no effect in mobile.

Bug, feature request, or proposal:
Bug
What is the expected behavior?
The date picker calendar should take up more screen real estate when touch ui mode is enabled.
What is the current behavior?
Touch ui mode works only in large displays, once you get to the size of a phone. It shrinks back to the regular date picker.
What are the steps to reproduce?
You can go on your phone (I have an iPhone7) go the example on https://material.angular.io/components/datepicker/overview. And look at the touch-ui example it doesn’t work. Just reverts back to the regular pop up.
No plunker needed as it’s displayed on the example page.
What is the use-case or motivation for changing an existing behavior?
To make it work :)
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
What I’ve used
2.0.0 beta8
Angular 4.3.0
iOS safari

The touch UI does appear to be working, it's just constrained to max of 80% of viewport width & height, which doesn't come out to much bigger than the popup. I can create a PR to bump it a little higher, maybe 90%, 100% wouldn't look good since the calendar would be touching the edge of the viewport

Perfect!


Zuul DebugFilter [Question]

I read on Zuul wiki page about a DebugFilter:
https://github.com/Netflix/zuul/wiki/How-To-Use#debug-logging
Until now I failed to see in the console information similar to the one presented on the Zuul wiki,
I used the http param to enable debug: ?debug=true
Thanks

We don't include that filter in Spring Cloud by default (I guess you can add it). We add request traces to the /trace endpoint, so look there instead.

Thanks Dave

I'm using spring-cloud 1.1.0.RELEASE and DebugFilter is already included in ZuulConfiguration with order 1, but it seems to me that setting on RequestContext debugRouting at that point is already too late. I would like to see logs from com.netflix.zuul.FilterProcessor. It checks for the debugRouting and does not add debug info to Debug class. So as I understand DebugFilter does nothing right now. Am I correct?

@Aloren doesn't look like it will help for the FilterProcessor does it. Not sure how we could go about making it useful to FilterProcessor.

@spencergibb this is what I'm talking about. Is there any sense right now in DebugFilter? As I see it does nothing.

yup, not much.


pyproject.toml and ruff linting

Earth-2 MIP Pull Request
Description

Switching to Pyproject TOML to conform to latest pep standards.
Adding improved metadata.
Updating linting from flake8 to ruff to introduce perf and security linting on top of flake 8.
Renaming tests folder to test to follow existing standards in modulus/pytorch
Closes: https://github.com/NVIDIA/earth2mip/issues/108
Checklist

[ ] I am familiar with the Contributing Guidelines.
[ ] New or existing tests cover these changes.
[ ] The documentation is up to date with these changes.
[ ] The CHANGELOG.md is up to date with these changes.
[ ] An issue is linked to this pull request.

Dependencies

/blossom-ci

/blossom-ci

/blossom-ci

/blossom-ci


Enables BGR Channel Order in DirectoryIterators

Adds the option to get images from a DirectoryIterator in BGR, the
native Caffe channel order to use datasets directly with pretrained
models.

Will make another better pull-request.


Make FromSql and FromSqlRow more generic over the backend

This allows each backend to provide a "value" type that is used by
FromSql. This is required for Sqlite support. While I can do some
semi-hacky nonsense to make Sqlite work with our current ToSql
structure, there's just no way I can make it work with our FromSql
structure.
Sqlite only returns c ints from its values, and there's no way I can
know at the row level the number of bytes that are needed for FromSql
for that specific sized integer.
This unfortunately means that we can no longer assume that all backends
provide String: FromSql<VarChar, Self>. We can bring this requirement
back by changing String: FromSql<VarChar, Pg> to something like Pg: CanDeserialize<VarChar, String>. I'm unsure how this will interact with
coherence, and feels significanly less natural than the NativeSqlType
change that we made for this.
I will likely make a similar change for ToSql in the future to make
Sqlite work in a less hacky manner.

review? @mfpiccolo @mcasper

Looks good to me!


User message avatar slot is only displayed when avatar has a value

Describe the bug
https://github.com/antoine92190/vue-advanced-chat/commit/48092be45e47c8b14da48e5d78f3227c5a1bffc8#diff-f3d6d7397d0e697abbf31431377ad9b953fe312e3cf9267331d2e2984ed9b529R37-R45
We want to overwrite the message avatar slot.
But the message avatar slot is only displayed when message.avatar has a value, so we set it for example to true,
and before it is possible to overwrite the message-avatar_ slot a request is already made to request the avatar for the background image true.
Our avatar is generated from multiple images, so it is not possible to just use one url in avatar.
Proposal
Split v-if="message.avatar && message.senderId !== currentUserId"
into v-if="message.senderId !== currentUserId"
and move the first part of v-if="message.avatar" to the inner div.
Device (please complete the following information)

OS: Windows 10
Browser: Chrome 105.0.5195.127
Package version: 2.0.4

Yes makes sense, feel free to send a PR for that change


Allow using references as argument

Phew, I finally implemented it.

cc @Xaeroxe @Rhuagh

Yay, :lgtm:!


allow setting values directly on slots; resolves #1397

Could we somehow protect against calling ChangeSlotValue when a slot is connected?

@kkananen now there is a test for that

lgtm; would be good to test this for a while in develop before pushing to production


docs: Regenerate contributors in README with right name [skip ci]

:tada: This PR is included in version 1.1.0-rc.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


onDrop() lambda?

Hi!
Very nice work with the library, thanks! :)
Would it be possible to add onDrop() to Reorderable(Lazy)Row/Column and  in addition to onSettle()/onMove() lambda? Or are we supposed to use draggableHandle.onDragStopped()?

just use onDragStopped, it should work fine


Add TestContainers Support

Improve the tests in the project adding TestContainers support.
The idea behind is the usage of TestContainers to use a real git repository for tests.
Why:

Simple tests
No complex Mockito statements to mock a FileSystem
No problem to upload in test/resources real complete configuration files with no security risk
Increase coverage

Actions:

[x] find some Docker projects
[x] review projects to find an option
[x] test the images if fits with the tests
[x] execute initial integration test between broker-git-client & the git server running on Docker
[x] publish on Docker hub
[x] test TestContainers on the project and execute the image and run the tests again
[ ] clean code
[ ] apply in the whole project

Ideas:

https://hub.docker.com/r/jkarlos/git-server-docker/
https://github.com/jkarlosb/git-server-docker
https://linuxhint.com/setup_git_http_server_docker/
https://hub.docker.com/r/gogs/gogs/dockerfile

https://www.testcontainers.org/modules/docker_compose/

Starting from the beginning.
https://www.baeldung.com/docker-test-containers

It is easier for the whole experience if I create a default repo in the image.

Integrated.
Tomorrow, I will create a BaseClass to add TestContainers support and I will apply in the whole project. With this testing alternative, I will not have to use a real git repository anymore. :)

Review testcontainers.properties
https://github.com/r8konopka/edu-testcontainers

Fixed


SubjectId null on grants?

Odd exception to look into:
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'SubjectId', table 'Test.IdentityServer4.EntityFramework.dbo.PersistedGrants'; column does not allow nulls. INSERT fails.
I think it does allow NULL.

Apparently it was preventing null. Fixed.


Javascript Best Practices

This is an issue that was created for this project to highlight the need for a code to be refactored using JavaScript best practices

I really admire how you used the forEach loop rather than the traditional for loops, like in the case below
https://github.com/AyoMoses1/todolist/blob/43902f79349fb34f3a4bb86989ad4e85d0dc33c5/src/modules/class.js#L40
So I will suggest replacing all traditional for loops with the for each loop

@AyoMoses1 Thank you for the feedback and refactoring suggestion. Your contribution to the project by replacing for loops with forEach is highly appreciated. It has improved code quality and readability. Thanks again for your dedication.


[entonclk] For now, just return the really needed HRM reading

Next week I will take time to implement clock_info into my watchface. For now, I have simply adjusted the data for HRM.

Thanks!


DataSet is not a constructor

Hi I upgraded from 7.3.4 to 7.5.0 and now I get an error in the constructor:
"TypeError: vis_network__WEBPACK_IMPORTED_MODULE_34__.DataSet is not a constructor"
This is how I imported it in 7.3.4
import { Network, DataSet, Node, Edge } from 'vis-network';
And now in 7.5.0
This import { Network, DataSet, Node, Edge } from 'vis-network';
Gives me the DataSet is not a constructor error
And
import { Network, Node, Edge } from 'vis-network'; import { DataSet } from 'vis-data';
Gives me a Expected DataSet or Array error

@Thomaash can you help out with this. It doesn't work with import { Network, DataSet, Nodes, Edges } from 'vis-network/standalone'; either.
It looks like all the releases use the same entry-esnext.d.ts file

This should be fixed since 7.6.1.

@Thomaash, This is the error I get on 7.6.1
./node_modules/vis-network/peer/umd/vis-network.min.js Module not found: Error: Can't resolve 'vis-data/peer' in '/home/tylermaclachlan/Documents/active-mapper-dashboard/node_modules/vis-network/peer/umd'

Just to explain this. The peer build doesn't contain Vis Data. That's the whole idea behind it. If you want to use the peer build you have to import from Vis Data (import { DataSet } from "vis-data/peer";).