Expose extra fans controls

Hello,
I have a JollyMec Botero2 with additional fans to heat other rooms
I would like to use extra ventilation. The remote expose multiples options but I just need to control speed fan.
I've exported diagnostic and found this values with a range from 0 to 5. Same values as the remote.
"Canalization_1_vent_set": {
"reg_type": "SET",
"offset": 32975,
"formula": "#",
"formula_inverse": "#",
"format_string": "{0}",
"set_min": 0,
"set_max": 5,
"mask": 65535,
"value_off": 0,
"raw_value": 5,
"calculated_value": 5,
"formatted_value": "5"
},
"canalization_2_vent_set": {
"reg_type": "SET",
"offset": 32978,
"formula": "#",
"formula_inverse": "#",
"format_string": "{0}",
"set_min": 0,
"set_max": 5,
"mask": 65535,
"value_off": 0,
"raw_value": 0,
"calculated_value": 0,
"formatted_value": "0"
},
Is this possible to expose this controls ?
Sorry for my naive question but there is no way to dynamically add an entity in order to avoid requests like mine in the future ;)
Thanks for your Help.

Hi @Pissouxxx, yes this should be possible. I will need to expose them as separate fan entities in HA probably. Can you send me the full diagnostics file? Because I will probably need some other values too.

Thank you, your integration is really helpfull.
config_entry-aguaiot-6890d7fd8578b7146ae34413b2188e83.json.txt

Can you maybe also make a screenshot of the app, so I can check which settings are available in there?
The canalization values are also in some variant available for stoves that don't actually support them. So I need to find out what exactly specifies if they are available or not. To not show useless controls to everyone.

Line 1 : Main params
1 : Main power
2 : temp ambiant
3 : stand-by mode ON/OFF
Line 2 concerns the Fan 2  ("canalization_1..." in diag)
4 : Mode fan 2 (manual / semi-auto / auto)
5 : Temp fan 2
6 : speed fan 2 (what I'm waiting for)
Line 3 concerns the Fan 3 ("canalization_2..." in diag)
7 : Fan 2 same as 4
8 : Fan 2 same as 5
9 : Fan 3 same as 6

I Have jollyMec too. With additional fans to heat other rooms. Verry interested with the solution.
Available for beta test if nedded.

Sorry I didn't read your entire response. On my app I can control fan 3 (canalization 2). But you should know that I haven't asked my installer to put it in yet. So, in my opinion, no information goes back to the application to inform it if equipment is there or not... Actually I only have "canalization_1" (vent 2).

I Have jollyMec too. With additional fans to heat other rooms. Verry interested with the solution.
Available for beta test if nedded.

Bonjour Marc, je profite du fait que vous ayez aussi un Jolly-Mec et que vous parliez Français, je suis plus à l'aise. J'ai lancé un démarrage depuis HA et surveillé les status.. chez moi ça me sort un peu n'importe quoi. Le "Start" et le "Flame light" sont ok. Tout le reste n'a pas vraiment de sens. Le "Ignition failed" semble correspondre au moment où j'ai demandé au poele de s'arrêter, pourtant la séquence de démarrage était bien terminée. Je n'ai fait qu'un seul essai, mais ça m'interroge. Chez-vous aussi c'est pareil ?

Salut,
Je n'utilise pas mon poêle en se moment, donc je ne peut pas vérifier/tester. En revanche l'hiver dernier j'ai bien constater des incohérances sur le device_status. Donc pour le contourner voici ce que j'ai fait :
- platform: template
  sensors:
    poele_alert_code:
      friendly_name: 'Code alarme'
      value_template: >-
        {% set t = state_attr('climate.poele', 'alarm_code') | int(0) %}
        {% set values =
            ['-', 'Démarrage', 'Préchauffe',
            'Chargement pellets allumage', 'Allumage bougie', 'Allumage initial',
            'Finallisation allumage', 'Chauffage en cours', 'Demande extinction',
            'Nettoyage final', 'Attente de Standby', 'Standby',
            'Alerte: Plus de pellet', 'Alerte: Nettoyer brasier'] %}
        {{ values[t] }}

Je récupère l'attribut alarm_code de l'entité climate.poele créer par l'intégration. Puis j'ai fais une correspondance entre le code alarme et l'affichage sur l'application.
@vincentwolsink maybe it is possible to add another attribute who could be alarm_code_human with the matching data abbove ?

I need the human states above in English to see what is different. I would be sad if each brand would implement different states for the codes, but I can implement that if needed.

I would be sad if each brand would implement different states for the codes
I see, it could be a nightmare!

Here a possible translation :
'-',
'Startup',
'Preheat',
'Loading pellets ignition',
'Ignition Spark plug',
'Initial ignition',
'Finallisation allumage',
'Ignition finalisation',
'Request for extinction',
'Final cleaning',
'Waiting for Standby',
'Standby',
'Alert: Out of pellet',
'Alert: Clean up inferno'
But keep in mind that the french label could be wrong, so the translation too. But I think its a good start !

I'll try it, it seems to be what i'm searching for. Thank you Marc. I've build dozens applications for my job in C#, Java, Air, NodeJs etc. But HA, Github and Python is new for me... This is helpfull.

Hello Marc,Since last winter we've corrected many things, including status. Personally i've pick up corrections from another fork and also based on my nobis stove. But you're true, trabslation could ve hazardous (italian to french to english...)From what i've seen, parameters/commands could vary between brands (i don't known inside a brand?), status seems coherent across brands.

I am currently completely rewriting the aguaiot interface. Since the API exposes more than py-agua-iot currently does. I also managed to get canalization in the integration. Just trying to figure out the details.

@Pissouxxx one more question, you can set the temperature for each canalization, but can you also see the actual current temperature? How does it measure that? I cannot find a register that exposes that information.

Salut,
Je n'utilise pas mon poêle en se moment, donc je ne peut pas vérifier/tester. En revanche l'hiver dernier j'ai bien constater des incohérances sur le device_status. Donc pour le contourner voici ce que j'ai fait :
- platform: template
  sensors:
    poele_alert_code:
      friendly_name: 'Code alarme'
      value_template: >-
        {% set t = state_attr('climate.poele', 'alarm_code') | int(0) %}
        {% set values =
            ['-', 'Démarrage', 'Préchauffe',
            'Chargement pellets allumage', 'Allumage bougie', 'Allumage initial',
            'Finallisation allumage', 'Chauffage en cours', 'Demande extinction',
            'Nettoyage final', 'Attente de Standby', 'Standby',
            'Alerte: Plus de pellet', 'Alerte: Nettoyer brasier'] %}
        {{ values[t] }}

Je récupère l'attribut alarm_code de l'entité climate.poele créer par l'intégration. Puis j'ai fais une correspondance entre le code alarme et l'affichage sur l'application.
@vincentwolsink maybe it is possible to add another attribute who could be alarm_code_human with the matching data abbove ?

I changed "alarm_code" to "device_status", and it works. THANKS. What's interesting is that I have more information on the startup sequence than on the application or the remote control. I have not yet encountered the last two "alert" items. I'll see when it comes up.
for newbies like me, add the following in your /config/configuration.yaml file
`

platform: template
sensors:
poele_device_status:
friendly_name: 'PAG device status'
value_template: >-
{% set t =  state_attr('climate.DEVICE_NAME', 'device_status')%}
{% set values =
['OFF', 'Démarrage', 'Préchauffe',
'Chargement pellets allumage', 'Allumage bougie', 'Allumage initial',
'Finalisation allumage', 'Chauffage en cours', 'Demande extinction',
'Nettoyage final', 'Attente de Standby', 'Standby',
'Alerte: Plus de pellet', 'Alerte: Nettoyer brasier'] %}
{{ values[t] }}`

at this moment I have not yet managed to use these custom sensor values in an automation.

@Pissouxxx one more question, you can set the temperature for each canalization, but can you also see the actual current temperature? How does it measure that? I cannot find a register that exposes that information.

I don't remember where I read that, but I seem to remember that you can buy a room thermometer. Which I didn't do because I already have everything I need on homeassistant. On the stove, I can change the temperature of the pipe... but it doesn't change anything because I don't have the equipment that goes with it. That's why I only need fan speed control.

First beta (attempt): v0.2.0-beta1
Please not this beta release (most probably) will contain bugs, due to the changes and also specifically since my stove does not support canalization so I currently do not have a proper way to test the code.

I'would like to try now, sorry for this stupid question but how do I install beta from HACS ?

See the HACS FAQ 🙂

Ok thx :) then  :
canalization 1 has only a "mode" button with one choice "fan only"
canalization 2 has a button "Fan Mode" : [OFF, P1,..., P5]
Il I click on anything it returns something like

I'm not at Home. But the common climate seems to work. if I change stove temp in HA, I get back the change on mobile app.
I don't have the time to look at other features now, but others sensors appears. It's nice.
Thanks a lot for your work !

Other detail, my device names "Poele a Granules" (stove in french), as you cas see on the screenshot, climate names "salon canalization 2". "Salon" is the area where is the stove "Poele a Granules". It's seems strange for me. But, maybe that's the way HA works.

Here some bug traces :)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/__init__.py", line 80, in async_setup_entry
    await agua.connect()
  File "/config/custom_components/aguaiot/aguaiot.py", line 121, in connect
    await self.fetch_device_information()
  File "/config/custom_components/aguaiot/aguaiot.py", line 287, in fetch_device_information
    await dev.update()
  File "/config/custom_components/aguaiot/aguaiot.py", line 358, in update
    await self.__update_device_information()
  File "/config/custom_components/aguaiot/aguaiot.py", line 411, in __update_device_information
    raise Error("Error while fetching device information")
          ^^^^^
NameError: name 'Error' is not defined

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 293, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 248, in _async_update_data
    return await self.update_method()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/__init__.py", line 94, in async_update_data
    await agua.fetch_device_information()
  File "/config/custom_components/aguaiot/aguaiot.py", line 287, in fetch_device_information
    await dev.update()
  File "/config/custom_components/aguaiot/aguaiot.py", line 358, in update
    await self.__update_device_information()
  File "/config/custom_components/aguaiot/aguaiot.py", line 407, in __update_device_information
    res = await self.__agua_iot.handle_webcall("GET", url, payload)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/aguaiot.py", line 322, in handle_webcall
    return await self.handle_webcall(method, url, payload)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/aguaiot.py", line 322, in handle_webcall
    return await self.handle_webcall(method, url, payload)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/aguaiot.py", line 322, in handle_webcall
    return await self.handle_webcall(method, url, payload)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  [Previous line repeated 951 more times]
  File "/config/custom_components/aguaiot/aguaiot.py", line 321, in handle_webcall
    await self.do_refresh_token()
  File "/config/custom_components/aguaiot/aguaiot.py", line 224, in do_refresh_token
    response = await client.post(
               ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1848, in post
    return await self.request(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1530, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1631, in send
    raise exc
  File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1625, in send
    await response.aread()
  File "/usr/local/lib/python3.11/site-packages/httpx/_models.py", line 909, in aread
    self._content = b"".join([part async for part in self.aiter_bytes()])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpx/_models.py", line 909, in <listcomp>
    self._content = b"".join([part async for part in self.aiter_bytes()])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpx/_models.py", line 927, in aiter_bytes
    async for raw_bytes in self.aiter_raw():
  File "/usr/local/lib/python3.11/site-packages/httpx/_models.py", line 993, in aiter_raw
    await self.aclose()
  File "/usr/local/lib/python3.11/site-packages/httpx/_models.py", line 1006, in aclose
    await self.stream.aclose()
  File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 152, in aclose
    await self._stream.aclose()
  File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 244, in aclose
    await self._httpcore_stream.aclose()
  File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 356, in aclose
    await self._pool.response_closed(self._status)
  File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 306, in response_closed
    await self._close_expired_connections()
  File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 193, in _close_expired_connections
    if connection.has_expired():
       ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 183, in has_expired
    return self._connection.has_expired()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpcore/_async/http11.py", line 266, in has_expired
    and self._network_stream.get_extra_info("is_readable")
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 91, in get_extra_info
    sock = self._stream.extra(anyio.abc.SocketAttribute.raw_socket, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/anyio/_core/_typedattr.py", line 78, in extra
    return self.extra_attributes[attribute]()
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/anyio/streams/tls.py", line 223, in extra_attributes
    **self.transport_stream.extra_attributes,
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/anyio/abc/_sockets.py", line 72, in extra_attributes
    if self._raw_socket.family in (AddressFamily.AF_INET, AddressFamily.AF_INET6):
       ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/trsock.py", line 20, in family
    return self._sock.family
           ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/socket.py", line 519, in family
    return _intenum_converter(super().family, AddressFamily)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/socket.py", line 105, in _intenum_converter
    return enum_klass(value)
           ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/enum.py", line 712, in __call__
    return cls.__new__(cls, value)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/enum.py", line 1101, in __new__
    return cls._value2member_map_[value]
           ^^^^^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded while calling a Python object

And i remove the actual setup and start a new one. I can't login any more :
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 227, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 63, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 177, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
    result = await method(view, request, data, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 298, in async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 394, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/config_flow.py", line 77, in async_step_user
    agua = agua_iot(
           ^^^^^^^^
NameError: name 'agua_iot' is not defined

Released a new version which addresses most of the bugs reported, thanks!
@Pissouxxx The reason that canalization 1 does not show fan speeds, is because that is the only control in the whole dataset that starts with a capital C (Canalization_1_vent_set), I need to find a way around that without hardcoding it.

with beta I had to disable and reenable HUB. (after a reboot) to load new sensors etc.
Now climates are unavailable. (others values like : smoke temp, real power, are ok)

Some logs :
Logger: homeassistant
Source: custom_components/aguaiot/aguaiot.py:504
Integration: Micronova Agua IOT ([documentation](https://github.com/vincentwolsink/home_assistant_micronova_agua_iot/), [issues](https://github.com/vincentwolsink/home_assistant_micronova_agua_iot/issues))
First occurred: 4:47:14 PM (2 occurrences)
Last logged: 4:47:54 PM
Error doing job: Task exception was never retrieved

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 235, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 392, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 173, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 473, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 830, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 773, in _async_generate_attributes
    attr.update(self.state_attributes or {})
                ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 301, in state_attributes
    hass, self.current_temperature, temperature_unit, precision
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/climate.py", line 339, in current_temperature
    return self._device.get_register_value(f"{self._target}_temp_air_get")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/aguaiot.py", line 504, in get_register_value
    return self.get_register(key).get("value")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'

Logger: homeassistant.components.climate
Source: custom_components/aguaiot/aguaiot.py:504
Integration: Climate ([documentation](https://www.home-assistant.io/integrations/climate), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+climate%22))
First occurred: 4:45:44 PM (6 occurrences)
Last logged: 4:48:56 PM

    Error adding entities for domain climate with platform aguaiot
    Error while setting up aguaiot platform for climate
    aguaiot: Error on device update!

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 752, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1002, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 730, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 830, in _async_write_ha_state
    state, attr = self._async_generate_attributes()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 773, in _async_generate_attributes
    attr.update(self.state_attributes or {})
                ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 301, in state_attributes
    hass, self.current_temperature, temperature_unit, precision
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/climate.py", line 339, in current_temperature
    return self._device.get_register_value(f"{self._target}_temp_air_get")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/aguaiot.py", line 504, in get_register_value
    return self.get_register(key).get("value")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'

@Pissouxxx Released a new version with a fix. Can you maybe also send me your diagnostics output for the integration? I can then try to create some fixtures for testing.

Canalization 2 -> Fan mode works fine :) (but I don't have it)
Temp doesn't SET. But the values are good.
I've two sensors (in double) that are unavailable. Maybe it comes from old config and I should delete it ?

Diagnostic is joined. Thanks :)
config_entry-aguaiot-6890d7fd8578b7146ae34413b2188e83.json(1).txt

This is the error's log when I try to set Temp Canalization :
Logger: homeassistant.components.websocket_api.http.connection
Source: components/climate/__init__.py:463
Integration: Home Assistant WebSocket API ([documentation](https://www.home-assistant.io/integrations/websocket_api), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+websocket_api%22))
First occurred: 6:42:46 PM (8 occurrences)
Last logged: 7:05:45 PM

    [1851342056]
    [1537405672]

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 227, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1969, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2006, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
    response_data = await _handle_entity_call(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 617, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 467, in async_set_temperature
    await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 463, in set_temperature
    raise NotImplementedError()
NotImplementedError

Thanks again for the error logs. I released a new beta version.
The old sensors become unavailable indeed, because of new more uniform sensor naming/ids. You can delete them.

Other detail, my device names "Poele a Granules" (stove in french), as you cas see on the screenshot, climate names "salon canalization 2". "Salon" is the area where is the stove "Poele a Granules". It's seems strange for me. But, maybe that's the way HA works.

Salon is the name of the stove in your Jolly Mec app (see also your screenshot from the app), so this is the name we receive from the api. But you can rename the sensors etc in HA 🙂

I released a new beta version.
I don't see it :-)

Oops, trying to fix this in between other things, didn't pay enough attention. It is there now.

I'm testing it, and I have to say that i'm really impressed because it works fine !
Temp & fan speed are working on Canalization 1 & 2.
Thank you very much Vincent for the time you devoted to us.
I'm looking to see if I can find a bug somewhere but so far it looks perfect.

@marc-cizeron can you confirm ? :)

Humm sorry but I can't stop de stove. I'm going to die dry :)
An error occurs when I press "heat" or "OFF" on the main climate. (my son started de stove with the remote. That's why I did'nt realized it before).
Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/aguaiot/aguaiot.py:547
Integration: Home Assistant WebSocket API ([documentation](https://www.home-assistant.io/integrations/websocket_api), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+websocket_api%22))
First occurred: 10:30:24 PM (4 occurrences)
Last logged: 10:30:53 PM
[1543735400] 'NoneType' object has no attribute 'keys'

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 227, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1969, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2006, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
    response_data = await _handle_entity_call(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/aguaiot/climate.py", line 147, in async_set_hvac_mode
    await self.async_turn_off()
  File "/config/custom_components/aguaiot/climate.py", line 172, in async_turn_off
    await self._device.set_register_value_description(
  File "/config/custom_components/aguaiot/aguaiot.py", line 547, in set_register_value_description
    value = list(options.keys())[
                 ^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'keys'

If you are still alive.. a new beta is available. 😉

27° ! at the right time ! I found the strength to upgrade!
All work as expected !
Just a detail, If a click on the fan it throws an error. But if y open the card I can click anyware without error.

Logger: homeassistant.components.websocket_api.http.connection
Source: components/climate/__init__.py:489
Integration: Home Assistant WebSocket API ([documentation](https://www.home-assistant.io/integrations/websocket_api), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+websocket_api%22))
First occurred: 11:40:45 PM (3 occurrences)
Last logged: 11:48:32 PM

    [1850058920]
    [1561399208]

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 227, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1969, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2006, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
    response_data = await _handle_entity_call(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 493, in async_set_hvac_mode
    await self.hass.async_add_executor_job(self.set_hvac_mode, hvac_mode)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 489, in set_hvac_mode
    raise NotImplementedError()
NotImplementedError

I'm going to upgrade, but I can't test right now because the Agua API seems to be unavailable. From the mobile APP or via HA.
Cette erreur provient d'une intégration personnalisée

Logger: custom_components.aguaiot
Source: custom_components/aguaiot/__init__.py:88
Integration: Micronova Agua IOT (documentation, issues)
First occurred: 09:07:20 (1 occurrences)
Last logged: 09:07:20

Unknown Agua IOT error: Error while fetching device information

It happens regularly. Have you ever had this problem @Pissouxxx?
Anyway, as soon as the API is available I will make some test.

Yes, the API is available, so here som bug traces :
Cette erreur provient d'une intégration personnalisée

Logger: custom_components.aguaiot
Source: custom_components/aguaiot/__init__.py:108
Integration: Micronova Agua IOT (documentation, issues)
First occurred: 09:15:11 (5 occurrences)
Last logged: 09:19:57

Unexpected error fetching aguaiot data: name 'self' is not defined
Traceback (most recent call last):
  File "/config/custom_components/aguaiot/__init__.py", line 94, in async_update_data
    await agua.fetch_device_information()
  File "/config/custom_components/aguaiot/aguaiot.py", line 287, in fetch_device_information
    await dev.update()
  File "/config/custom_components/aguaiot/aguaiot.py", line 358, in update
    await self.__update_device_information()
  File "/config/custom_components/aguaiot/aguaiot.py", line 413, in __update_device_information
    raise AguaIOTError("Error while fetching device information")
custom_components.aguaiot.aguaiot.AguaIOTError: Error while fetching device information

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 293, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 248, in _async_update_data
    return await self.update_method()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aguaiot/__init__.py", line 108, in async_update_data
    self.name,
    ^^^^
NameError: name 'self' is not defined

I installed this integration a few days ago. Before, I had the EFESTO module. I haven't noticed any service issues. Except that I had a lot of trouble getting it to work stably on my box (Freebox). I managed to start it from the mobile app once. Between the click and the start it took 30 seconds. The rest of the time it just didn't work. I had bugs on the application. I contacted Jolly-Mec who explained to me that they were having a lot of problems with Free and the AQUA module. That I had to put another wifi terminal at home to test (my stove is next to my box, it's not a distance problem). So I added an Aruba wifi terminal in ethernet to my box, I connected the stove to it and ... I have had absolutely no problems since then.

Dam ! @Pissouxxx, thanks. I have a Freebox too. And i've had some strange problems with my connected food processor (thermomix). I had to create a guest WIFI network dedicated to the Thermomix with internet access only. I'm going to do the same with the stove.

Before calling support I created a DMZ, routed all the ports to the stove etc etc etc. Nothing to do ! I found it hard to believe that Freebox Wifi created a particular problem, I hadn't had one before. The stove was well connected to wifi and I could ping it...  I connected my stove in wifi to my phone (connected to internet with 4G) and, immediately, the application Jolly-Mec worked correctly on another phone without lag...


The Cloudflare firewall is getting triggered often, prompting a captcha waaaay to much for team members inputting text into determinations etc.

What can we do to ideally keep the security high while not getting team triggers? Wondering if https://github.com/privacypass/challenge-bypass-extension is useful here? Team members have a browser extension that sends their IP address to cloudflare for being whitelisted? Something on the app side? Some cloudflare wap firewall westting?

I have disabled Flash and Wordpress rules in Cloudflare Web Application Firewall for opentech.fund.
I see you have already whitelisted some IPs, for you offices I assume.

I have also now disabled the  OWASP XSS rules that got triggered a lot by staff. Reports indicate that this solves the problem.
@danblah I know you are uncomfortable with lowering any security. But the rules for opentech.fund are significantly stricter set than they are for otf.is.
The otf.is domain has no Web Application Firewall and no OWASP rules in place.
The opentech.fund domain has both and only a single one of a dussin relevant OWASP rules deactivated. That rule had to many false positives to be used, it was a mess for staff and surly for many other users as well.


xc7/environment: bump

LGTM

@nelsobe, @westonMS, @jcrob2, this PR bumped the tools, including yosys-plugins, used in the "default" environment of this repo. Hence, most of the issues you had with the Surelog parser (https://github.com/chipsalliance/f4pga-examples/labels/surelog) should be now fixed without manually overriding the plugins.
/cc @kgugala (per https://github.com/chipsalliance/f4pga-examples/issues/289#issuecomment-1122649528), @rkapuscik


[SDA-7756] create config with secrets manager

Related issue: https://issues.redhat.com/browse/SDA-7756
What
Stores private key in secrets manager for bound service account signing key during creation of oidc config
Why
Adds a layer of security to user flow

/lgtm


Is it possible to make  that won't close the book?

It would be very helpful, i like this plugin very much

It's not possible due to Minecraft limitations.


Installs, doesn't run

$ sudo gem install knife-tidy
Successfully installed knife-tidy-1.1.0
Parsing documentation for knife-tidy-1.1.0
Done installing documentation for knife-tidy after 0 seconds
1 gem installed
$ sudo knife tidy server report --orgs xxx --node-threshold 50
FATAL: Cannot find subcommand for: 'tidy server report --orgs xxx --node-threshold 50'

Hmm. I’ve had no luck at all. I tried installing the ChefDK both via RPM –Uvh and the curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -c current -P chefdk procedure and still get the problem.
From: Jeremy Miller<EMAIL_ADDRESS>Sent: Friday, April 13, 2018 12:21 PM
To: chef-customers/knife-tidy
Cc: Magnuson, Chris; Mention
Subject: Re: [chef-customers/knife-tidy] Installs, doesn't run (#83)
@cmagnuso-pimcohttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_cmagnuso-2Dpimco&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=Q8-PNyM4vK0VYMTJCxXhyKvcRNeov0oNibh35DKTe8E&s=g02OqIbYU8PUL1iKt1ncbsYwpLTMcJVG-YmFuy16hEI&e= one way that this can happen is if you install the gem outside of either a ChefDK or Chef client (ie. a stand-alone ruby installation) That is because not all of the Chef libraries are present.
If that was the case here, please install a current ChefDK or chef-client first. Then attempt a re-install of knife-tidy.
If using a ChefDK installhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_chef_chef-2Ddk-23installation&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=Q8-PNyM4vK0VYMTJCxXhyKvcRNeov0oNibh35DKTe8E&s=RQ4qQKGJB0hAbw4LgIXgL8aCwP0xdHzHJ-Ww_xvkiOg&e= then you can install knife-tidy via:
chef gem install knife-tidy
Or if using a Chef client installhttps://urldefense.proofpoint.com/v2/url?u=https-3A__docs.chef.io_install-5Fomnibus.html-23unix-2Dand-2Dlinux&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=Q8-PNyM4vK0VYMTJCxXhyKvcRNeov0oNibh35DKTe8E&s=9F7Kle6UQCuGxne5tLV2BYwgS8jJeu3EohjNMKgg68I&e= then install knife-tidy via:
/opt/opscode/embedded/bin/gem install knife-tidy
With all the chef libraries installed, you shouldn't get the FATAL: Cannot find subcommand error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_chef-2Dcustomers_knife-2Dtidy_issues_83-23issuecomment-2D381236962&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=Q8-PNyM4vK0VYMTJCxXhyKvcRNeov0oNibh35DKTe8E&s=hl1uyXyFpWuJQY7VVaYjmN3BGiZujIQxkxfuvdi_7_c&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AghxDrdQK1nqdWin7FVqHtg2C136vGoVks5toPqSgaJpZM4TT4-5FR&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=Q8-PNyM4vK0VYMTJCxXhyKvcRNeov0oNibh35DKTe8E&s=XvwnVJ3Qzn03F4tKgjngVW_6FmFcBZepVWKSoQ_Wp_o&e=.
This message contains confidential information and is intended only for the individual named. If you are not the named addressee, you should not disseminate, distribute, alter or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmissions cannot be guaranteed to be secure or without error as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender, therefore, does not accept liability for any errors or omissions in the contents of this message which arise during or as a result of e-mail transmission. If verification is required, please request a hard-copy version. This message is provided for information purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments in any jurisdiction.  Securities are offered in the U.S. through PIMCO Investments LLC, distributor and a company of PIMCO LLC.
The individual providing the information herein is an employee of Pacific Investment Management Company LLC ("PIMCO"), an SEC-registered investment adviser.  To the extent such individual advises you regarding a PIMCO investment strategy, he or she does so as an associated person of PIMCO.  To the extent that any information is provided to you related to a PIMCO-sponsored investment fund ("PIMCO Fund"), it is being provided to you in the individual's capacity as a registered representative of PIMCO Investments LLC ("PI"), an SEC-registered broker-dealer.  PI is not registered, and does not intend to register, as a municipal advisor and therefore does not provide advice with respect to the investment of the proceeds of municipal securities or municipal escrow investments.  In addition, unless otherwise agreed by PIMCO, this communication and any related attachments are being provided on the express basis that they will not cause PIMCO LLC, or its affiliates, to become an investment advice fiduciary under ERISA or the Internal Revenue Code.

  I didn’t get it working until I worked with Chef support.

Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_chef-2Dcustomers_knife-2Dtidy_issues_83-23issuecomment-2D407891827&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=PxTDcnqrEVJifZLSIcENhPjOmj1qbrjLG3iN6XnBj84&s=zd9W84OCG7d5KxwEQSqmnkIgCxx-j1OxEvgp8O3_c_U&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AghxDkinE3-2DhJBwfuxzVtekzgkq39maEks5uKNrIgaJpZM4TT4-5FR&d=DwMFaQ&c=91HTncUBNS9Yv-Uuv2IlCA&r=jxY0LkCTDyddBe5fvX4p0kAImf6zMe_KUudTjgoI-JE&m=PxTDcnqrEVJifZLSIcENhPjOmj1qbrjLG3iN6XnBj84&s=sJETjwdciJBexl3i60ySNm-0YP40wy_OraMF74yu5BU&e=.
This message contains confidential information and is intended only for the individual named. If you are not the named addressee, you should not disseminate, distribute, alter or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmissions cannot be guaranteed to be secure or without error as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender, therefore, does not accept liability for any errors or omissions in the contents of this message which arise during or as a result of e-mail transmission. If verification is required, please request a hard-copy version. This message is provided for information purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments in any jurisdiction.  Securities are offered in the U.S. through PIMCO Investments LLC, distributor and a company of PIMCO LLC.
The individual providing the information herein is an employee of Pacific Investment Management Company LLC ("PIMCO"), an SEC-registered investment adviser.  To the extent such individual advises you regarding a PIMCO investment strategy, he or she does so as an associated person of PIMCO.  To the extent that any information is provided to you related to a PIMCO-sponsored investment fund ("PIMCO Fund"), it is being provided to you in the individual's capacity as a registered representative of PIMCO Investments LLC ("PI"), an SEC-registered broker-dealer.  PI is not registered, and does not intend to register, as a municipal advisor and therefore does not provide advice with respect to the investment of the proceeds of municipal securities or municipal escrow investments.  In addition, unless otherwise agreed by PIMCO, this communication and any related attachments are being provided on the express basis that they will not cause PIMCO LLC, or its affiliates, to become an investment advice fiduciary under ERISA or the Internal Revenue Code.

well, i noticed that installation is unpredictable. I am using Chef server. On version 12.15.17 I could install it but on 12.17.33 could not. And after an hour of fighting with gem somehow i could install it that Chef instance as well. But on next one I could not install it even after two hours and second one has exactly same gem, ruby, solar phase. I will work with Chef support, thanks


Add unit tests for sequence downloader module

Left the current module in place for now, will swap everything out at one time and then run integration tests manually
Required hacking up the compiled clients a little to stop mypy complaining

Coverage remained the same at ?% when pulling 454d50f13efae0b97a9d8ad1bbaa0b400ac70cf2 on MrCreosote:dev-testing into 35db4dc0acc27340c97363443263a36c05cc3af2 on kbaseapps:dev-testing.


New Crowdin translations

Enjoy!

Should fix https://github.com/sparanoid/chinese-copywriting-guidelines/pull/92 and https://github.com/sparanoid/chinese-copywriting-guidelines/issues/91


Setting PDFs as Journal Notes on the tabletop

Since Journal Entries can be put on the tabletop to create Journal Notes it would be good to have that functionality for PDFs as well. Currently if you stick a PDF to the tabletop the PDF can't be opened by clicking on those. It would also be great if for those notes a page could be defined.

This is a good idea.


Missing Zone images

Due to me not having a good PC, I'm unable to take the Zone pictures in game to use them as RPC Assets. Because of this, I would really like the help with the Zones that are missing.
If you have a monitor resolution of 1080p or higher, just post an image of the area in this issue for me to later look and resize.
Thanks!
A visual representation of the game zones can be seen at https://forge.plebmasters.de/map
This is the list of Completed and Missing zones:

[x] AIRP
[ ] ALAMO
[ ] ALTA
[ ] ARMYB
[ ] BANHAMCA
[ ] BANNING
[ ] BAYTRE
[ ] BEACH
[ ] BHAMCA
[x] BRADP
[ ] BRADT
[ ] BURTON
[ ] CALAFB
[ ] CANNY
[ ] CCREAK
[ ] CHAMH
[ ] CHIL
[ ] CHU
[ ] CMSW
[ ] CYPRE
[ ] DAVIS
[ ] DELBE
[ ] DELBE
[ ] DELPE
[ ] DELSOL
[ ] DESRT
[ ] DOWNT
[ ] DTVINE
[ ] EAST_V
[x] EBURO
[ ] ELGORL
[ ] ELYSIAN
[ ] GALFISH
[ ] GALLI
[ ] GOLF
[ ] GRAPES
[ ] GREATC
[ ] HARMO
[ ] HAWICK
[x] HORS
[ ] HUMLAB
[ ] ISHEISTZONE
[x] JAIL
[ ] KOREAT
[ ] LACT
[ ] LAGO
[ ] LAGO
[ ] LDAM
[ ] LEGSQU
[x] LMESA
[ ] LOSPUER
[ ] MIRR
[ ] MORN
[ ] MOVIE
[x] MTCHIL
[x] MTGORDO
[ ] MTJOSE
[x] MURRI
[ ] NCHU
[ ] NOOSE
[ ] OBSERV
[x] OCEANA
[ ] PALCOV
[x] PALETO
[ ] PALFOR
[x] PALHIGH
[x] PALMPOW
[ ] PBLUFF
[ ] PBOX
[x] PROCOB
[ ] PROL
[ ] RANCHO
[ ] RGLEN
[ ] RICHM
[ ] ROCKF
[x] RTRAK
[ ] SANCHIA
[ ] SANDY
[ ] SKID
[ ] SLAB
[ ] STAD
[ ] STRAW
[ ] TATAMO
[x] TERMINA
[ ] TEXTI
[ ] TONGVAH
[ ] TONGVAH
[ ] TONGVAV
[ ] VCANA
[ ] VESP
[ ] VINE
[x] WINDF
[ ] WVINE
[ ] ZANCUDO
[ ] ZP_ORT
[ ] ZQ_UAR

I took screenshots of every zone, except from 'BANHAMCA' and 'ISHEISTZONE'.

Screenshots taken from FiveM, I hope this does not matter.
https://drive.google.com/file/d/1YwzyH7RUHd1NI-aSfV96Y1SHixVCYOn_/view?usp=sharing

What can I say other than...

In the next couple of hours imma take the time to check and adjust every single one of them (as Discord requires a 1:1 ratio).

I added 47 new Zone Assets from this images but not all of them due to a couple of reasons like lighting, angle or other.
Thank you so much for taking the time to post all of those images for me to use.

I took screenshots of the rest excluding "ISHEISTZONE", I have no idea what it is
https://drive.google.com/file/d/1p4vU9FKvtiUeCyGmfosAvVJP4WIagT-h/view?usp=sharing (couple of screenshots for every zone)
You're welcome :3

I have no idea what it is

ISHEISTZONE is Cayo Perico.

ISHEISTZONE is Cayo Perico.

Oh okay, I took some screenies there so here you go!
https://drive.google.com/file/d/1OwvP24yKvGnjTEUldvvFtt8nMrVij_g_/view?usp=sharing

Sorry to bother you @Fuzzy2700 but it appears that the images for LOSPUER (La Puerta) were taken on STAD (Maze Bank Arena). Would it be possible to get one that is taken more to the north-west, where is actually La Puerta.
(I don't want to sound like a choosing beggar, so sorry if it feels like that)

Sorry to bother you @Fuzzy2700 but it appears that the images for LOSPUER (La Puerta) were taken on STAD (Maze Bank Arena). Would it be possible to get one that is taken more to the north-west, where is actually La Puerta?
(I don't want to sound like a choosing beggar, so sorry if it feels like that)

Sorry, I probably got confused in the names 🤔. I'll get it soon :)

AAAAAAAAnd we have finished with the Zone Assets.
I want to say thanks to @Starman0620, @jeanropke and @Fuzzy2700 for submitting the images, as this is a job that I couldn't do myself due to how low the resolution and quality of my game is (because my specs are horrible).
All of the final Zone Assets can be seen and downloaded at https://drive.google.com/drive/folders/1--jUfOAbavKdwvoMSj9Yb9Tnt4LvfY-2
And for those that want to suggest a new picture for a specific zone, feel free to do so!

If you want to suggest new assets or changes to existing ones, feel free to open a new issue.


Bounties Sidebar

Dependson:

Is it possible to get the bounty preview text in there as well? maybe it doesn't look good, but would like to see what it looks like


Settings cache reader

b/257074690
#no-changelog
Goal
Add Crashlytics Settings to FirebaseSessions.
This PR

Adds the "read local file" functionality of settings.
This also includes reading a so-called "cache-key" which provides meta-data to determine if current cache is expired.

Tests
Tests are split into 3 categories:

Test settings API return correct values

default settings without cache
valid cache

Test cache key expiration causes isCacheExpired to be marked as true

Can expire by TTL
Can expire by app version update
Can expire by GoogleID change

Test corrupted cache file

Corrupted settings
Corrupted cache-key

@ncooke3 @samedson Thanks for the review, addressed all the comments. However, I also added a MockSettingsFileManager to fix a test-flakiness issue with removeCacheFilesAsync(). Sometimes tests fail randomly because that method is running async in a dispatch queue, and it is fixed when I make it blocking/synchronous. However the way I did it feels kind of weird to me, is there a better way to mock this?


Use variables in CSS for colors

A lot of colors are defined multiple times when they can be declared with a variable and used as many times as needed.

Check the colorBlue branch.


Elbow Dislocations

Don't have the image loaded yet.

Here is the image

Jeremy I'll get this done tonight
Sent from my iPhone

On Mar 29, 2017, at 2:35 PM, Jeremy Voros<EMAIL_ADDRESS>wrote:
@jvoros requested changes on this pull request.
A few minor formatting changes, but the card looks great!
It does need to be in its own folder. So there needs to be a folder named Elbow Dislocations and all this card content goes in a card.md file. The image file goes in this folder as well.
This tutorial explains how to do it via GitHub: https://github.com/aliemteam/aliemcards/wiki/Tutorial:-Adding-a-Card
It is a little confusing at first. So let me know if you are having trouble. We could do a screen sharing session or something to walk through the first one.
In cards/Elbow Dislocations:

@@ -0,0 +1,68 @@
+---

+title: Elbow Injuries- Elbow Dislocations
Needs a space Elbow Injuries - Elbow Dislocaitons
In cards/Elbow Dislocations:

+---

+title: Elbow Injuries- Elbow Dislocations
+authors:

Melody Glenn, MD

Andrew Little, DO

Mary Haas, MD
+created: 2016/12/12
+updates: null
+categories:

Peer Reviewed

Orthopedics

+---
+

#Elbow Injuries: Elbow Dislocation
Headers need a space: # Elbow Injuries...

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Jeremy,
I've been trying to build folders for the past few nights when I;ve

gotten off work. I reset up my forks, and get to the load folder section
and am not sure what I should be dragging and dropping. Can we set up a
time to screen share?
Andy
On Wed, Mar 29, 2017 at 2:35 PM, Jeremy Voros<EMAIL_ADDRESS>wrote:

@jvoros requested changes on this pull request.
A few minor formatting changes, but the card looks great!
It does need to be in its own folder. So there needs to be a folder named Elbow
Dislocations and all this card content goes in a card.md file. The image
file goes in this folder as well.
This tutorial explains how to do it via GitHub:
https://github.com/aliemteam/aliemcards/wiki/Tutorial:-Adding-a-Card
It is a little confusing at first. So let me know if you are having
trouble. We could do a screen sharing session or something to walk through
the first one.
In cards/Elbow Dislocations
https://github.com/aliemteam/aliemcards/pull/132#discussion_r108752351:

@@ -0,0 +1,68 @@
+---

+title: Elbow Injuries- Elbow Dislocations
Needs a space Elbow Injuries - Elbow Dislocaitons
In cards/Elbow Dislocations
https://github.com/aliemteam/aliemcards/pull/132#discussion_r108753054:

+---

+title: Elbow Injuries- Elbow Dislocations
+authors:

Melody Glenn, MD

Andrew Little, DO

Mary Haas, MD
+created: 2016/12/12
+updates: null
+categories:

Peer Reviewed

Orthopedics

+---
+

#Elbow Injuries: Elbow Dislocation

Headers need a space: # Elbow Injuries...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/aliemteam/aliemcards/pull/132#pullrequestreview-29805031,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYVVuSLZJdb5nsdogRH_nG3d3y6BEyM8ks5rqqRwgaJpZM4MscRT
.

@andyglittle This branch still needs to have the card placed into its own folder.
Thanks 👍


Upgrade operator-sdk to v1.32.0

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 61.78%. Comparing base (99e413d) to head (884cabd).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #178   +/-   ##
=======================================
  Coverage   61.78%   61.78%
=======================================
  Files           2        2
  Lines         785      785
=======================================
  Hits          485      485
  Misses        249      249
  Partials       51       51

Flag
Coverage Δ

unit
61.78% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat: support record screen view event manually

Description

support record screen view event manually

General Checklist

[x] Added new tests to cover change, if needed
[x] Build succeeds using Swift Package Manager
[x] All unit tests pass
[ ] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
[x] Documentation update for the change if required
[x] PR title conforms to conventional commit style
[ ] If breaking change, documentation/changelog update with migration instructions

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (16328f2) 95.50% compared to head (af0a51a) 95.64%.

Files
Patch %
Lines

...Clickstream/AutoRecord/AutoRecordEventClient.swift
97.72%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #50      +/-   ##
==========================================
+ Coverage   95.50%   95.64%   +0.13%
==========================================
  Files          35       35
  Lines        1937     1973      +36
==========================================
+ Hits         1850     1887      +37
+ Misses         87       86       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add ray disaggregated serving support

This PR add ray disaggregated serving support in JetStream, the underline engine implementation will be pytorch and maxtext side.
This PR doesn't not impact any current interleave or Pathway disaggregated behavior.

LGTM! May need some unit tests.

Let's explore how to add disaggregated serving unit test and add disaggregated tests before enable disaggregated serving.

LGTM! May need some unit tests.

Let's explore how to add disaggregated serving unit test and add disaggregated tests before enable disaggregated serving.

We could add a simple unit test in test_orchestrator.py and test_server.py just to cover the flag if else logic. The e2e functional test could be added later I guess?


STARTS_WITH

Add STARTS_WITH

We had some more serious merge conflicts so were gonna close this and re-pr


Add some validation to rustc-link-arg

This adds some validation, so that if a cargo:rustc-link-arg-* build script instruction specifies a target that doesn't exist, it will generate an error.  This also changes a parse warning to an error if the = is missing from BIN=ARG.
I intentionally did not bother to add the validation to config overrides, as it is a bit trickier to do, and that feature is very rarely used (AFAIK), and I'm uncertain if rustc-link-arg is really useful in that context.
cc #9426

r? @alexcrichton
(rust-highfive has picked a reviewer for you, use r? to override)

@bors r=alexcrichton

:pushpin: Commit 836e537bc0413d8cf9cefc006ab119ddc82cb0a0 has been approved by alexcrichton

:hourglass: Testing commit 836e537bc0413d8cf9cefc006ab119ddc82cb0a0 with merge<PHONE_NUMBER>36a90a3177696cf2d0f33d8ba40277...

:sunny: Test successful - checks-actions
Approved by: alexcrichton
Pushing<PHONE_NUMBER>36a90a3177696cf2d0f33d8ba40277 to master...


Add AutoDllPlugin, cache-loader, and WebpackUglifyParallel

Wrong base, but whatever. I thought to test this idea on CI on my own fork...
yarn build is not creating and injecting vendor bundle right now.

Why all three in one PR?

yeah, better in separate PRs 👍


Run jmx_exporter on cassandra nodes to expose metrics

What this PR does / why we need it:
In order to gather metrics into Prometheus, this PR enables the JMX exporter on Cassandra nodes.
I've also added a basic e2e test to ensure the prometheus endpoint starts listening on port 8080.
Release note:
Enable Prometheus JMX exporter on Cassandra nodes

/assign @kragniz

@kragniz updated to reflect your comment

kubeadm error
/test e2e v1.9


⚠ Secret Website 3 has degraded performance

In 26075d5, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 2861 ms

Resolved: Secret Website 3 performance has improved in 78f2f4b.


CLI fails to run via Github Actions<EMAIL_ADDRESS>

Describe the bug
CLI fails to run when triggered via SimpleLocalize action<EMAIL_ADDRESS>simplelocalize: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.33' not found (required by simplelocalize)`
CLI Version
2.1
Operating system (please complete the following information):

OS: Ubuntu 20.04.5
CPU Architecture x86

2022-12-07T07:36:01.5817508Z Image: ubuntu-20.04
2022-12-07T07:36:01.5817961Z Version: 20221125.1
2022-12-07T07:36:01.5818535Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221125.1/images/linux/Ubuntu2004-Readme.md
2022-12-07T07:36:01.5819257Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221125.1

(Standard GH Actions runner)
GH Actions Config
      - name: Pull translation file
        uses<EMAIL_ADDRESS>        with:
          apiKey: ${{ secrets.SIMPLELOCALIZE_LENDING_USER_FE_API_KEY }}
          pullPath: ${{ env.USER_FE_I18NDIR }}
          environment: ${{ env.SLENV }}

GH Actions Logs
2022-12-07T07:36:12.1503048Z ##[group]Run curl -s https://get.simplelocalize.io/2.1/install | bash
2022-12-07T07:36:12.1503485Z curl -s https://get.simplelocalize.io/2.1/install | bash
2022-12-07T07:36:12.1551347Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2022-12-07T07:36:12.1551648Z env: <removed>
2022-12-07T07:36:12.1567947Z ##[endgroup]
2022-12-07T07:36:12.5671684Z Downloading package version 2.1.2 for linux
2022-12-07T07:36:12.8131613Z Installing package
2022-12-07T07:36:12.9775633Z
2022-12-07T07:36:12.9776281Z Instalation completed!
2022-12-07T07:36:12.9776796Z
2022-12-07T07:36:12.9778612Z Use 'simplelocalize --version' to verify installation and check version number
2022-12-07T07:36:12.9779135Z Use 'simplelocalize --help' to see manual
2022-12-07T07:36:12.9780423Z Learn more: https://github.com/simplelocalize/simplelocalize-cli
2022-12-07T07:36:13.0575380Z ##[group]Run simplelocalize pull --apiKey *** --pullPath ./i18n/user_fe/ --environment latest
2022-12-07T07:36:13.0576210Z simplelocalize pull --apiKey *** --pullPath ./i18n/user_fe/ --environment latest
2022-12-07T07:36:13.0628828Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2022-12-07T07:36:13.0629122Z env: <removed>
2022-12-07T07:36:13.0645071Z ##[endgroup]
2022-12-07T07:36:13.2704634Z simplelocalize: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by simplelocalize)
2022-12-07T07:36:13.2714582Z simplelocalize: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by simplelocalize)
2022-12-07T07:36:13.2716132Z simplelocalize: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by simplelocalize)
2022-12-07T07:36:13.2739642Z ##[error]Process completed with exit code 1.
2022-12-07T07:36:13.2860440Z Post job cleanup.

Hey @joshmauk
Sorry for the trouble I fixed the problem. If there is a possibility I recommend you to upgrade the ubuntu version from ubuntu-20.04 to ubuntu-22.04. Thanks!

@jpomykala Confirmed working! Thanks for the quick fix :)
Looks like Github is still rolling out 22.04 so specifying ubuntu-latest results in either 20.04 or 22.04


breakpoints, run to line, f5 nothing hit the location i want to stop into

i did read the documetation, and everything goes well, but when i go to debug the project am working on (using laravel), i did set a breakpoint on a controller, i did refresh the page on the browser, the hit the route that instantiate the controller, the debug tab on vim is opened, but not where i want it to be, but inside the first script that get called when a new request is initiated (server.php).
i also did use xdebug_break() in many locations on my project, just for proof, but no result, always breaking on the first script file, i of course did run my project with php-xdebug artisan serve --port 9494, as suggested on the documentation, the ini file is configured properly, and a single normal script file is debugged with no problems at all.
i keep reading on the documentation script, script script ...; is that mean that vdebug can only be used with script files ?
please if anyone get the debugger to work on a larger project, with controller and modules, views, tel me how you did the setup, any ideas will be appreciated ?

ok :3, if anyone get into this problem, just hit f5, but still, why do i have to hit f5, why not just do it automatically, is it something like break on the first line when file include ? if so how can i disable it

I guess you may be looking for the already existing option break_on_open ?


Optimize Deps does not seem to work

Describe the bug
I'm working on https://github.com/exogee-technology/graphweaver/. We've tried to pull in react-syntax-highlighter to our Admin UI build, which is built by Vite.
When I run the Admin UI, I get this error:
Uncaught SyntaxError: The requested module '/@fs/Users/kevin/development/exogee/graphweaver/src/packages/end-to-end/app/node_modules/.pnpm/lowlight@1.20.0/node_modules/lowlight/lib/core.js?v=fd7d4651' does not provide an export named 'default' (at light.js?v=fd7d4651:2:8)

No worries, we've seen this before, is lowlight CJS? Indeed it is, we just need to add it to optimizeDeps.include. So I do that. Same error. Hmmm, ok, it's a dependency of react-syntax-highlighter which is ESM. Maybe we need react-syntax-highlighter > lowlight? Same error. My current optimizeDeps.include looks like this:
{
	optimizeDeps: {
		include: [
			'lowlight',
			'react-syntax-highlighter > lowlight',
			// Other CJS modules
		]
		// other config
	}
}

When I run with DEBUG=vite*, I see the following lines in the log:
  vite:resolve 0.32ms lowlight -> /Users/kevin/development/exogee/graphweaver/src/packages/end-to-end/app/node_modules/.pnpm/file+..+local_modules+@exogee+graphweaver-admin-ui_@codemirror+language@6.0.0_@types+node@22.1.0_csstype@3.1.3/node_modules/@exogee/graphweaver-admin-ui/node_modules/.vite/deps/lowlight.js?v=fd7d4651 +0ms
  vite:import-analysis /@fs/Users/kevin/development/exogee/graphweaver/src/packages/end-to-end/app/node_modules/.pnpm/file+..+local_modules+@exogee+graphweaver-admin-ui_@codemirror+language@6.0.0_@types+node@22.1.0_csstype@3.1.3/node_modules/@exogee/graphweaver-admin-ui/node_modules/.vite/deps/lowlight.js?v=fd7d4651 needs interop +1ms
  vite:optimize-deps load /Users/kevin/development/exogee/graphweaver/src/packages/end-to-end/app/node_modules/.pnpm/file+..+local_modules+@exogee+graphweaver-admin-ui_@codemirror+language@6.0.0_@types+node@22.1.0_csstype<EMAIL_ADDRESS>+17ms

This leads me to believe that lowlight should be transformed and able to be used, however I'm still getting no default export on this module. When I look at the source in the browser it looks CJS to me, and I'm not sure why.
Expected
I would expect this config to work and successfully leverage CJS interop
Actual
Uncaught SyntaxError: The requested module '/@fs/Users/kevin/development/exogee/graphweaver/src/packages/end-to-end/app/node_modules/.pnpm/lowlight@1.20.0/node_modules/lowlight/lib/core.js?v=fd7d4651' does not provide an export named 'default' (at light.js?v=fd7d4651:2:8)

Reproduction
https://github.com/exogee-technology/graphweaver/tree/fix/smaller-admin-ui-bundle
Steps to reproduce
In src:

Run pnpm i && pnpm build
cd packages/end-to-end
pnpm import-database-sqlite
cd app
DEBUG=vite* pnpm start
Browse to http://localhost:9000

System Info
System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Max
    Memory: 3.91 GB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.16.0 - ~/.nvm/versions/node/v18.16.0/bin/node
    npm: 9.5.1 - ~/.nvm/versions/node/v18.16.0/bin/npm
    pnpm: 8.15.8 - ~/.nvm/versions/node/v18.16.0/bin/pnpm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 127.0.6533.100
    Safari: 17.5

Used Package Manager
pnpm
Logs

Click to expand!
GitHub says the log is too long to paste here. Happy to provide it.

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

After I removed the lowlight, it was ready to go
{
	optimizeDeps: {
		include: [
			// 'lowlight',
			'react-syntax-highlighter > lowlight',
			// Other CJS modules
		]
		// other config
	}
}

The frontend that's built by vite is on port 9000, not on 9001.
I removed lowlight from the list (https://github.com/exogee-technology/graphweaver/pull/1007/commits/9b389048edc94dd475e877a893d4ce7a773febcd) and still get the issue.

The end to end tests are failing with timeouts because the frontend doesn't render at the moment: https://github.com/exogee-technology/graphweaver/actions/runs/10380577104/job/28740636533?pr=1007

One of the reasons for the uncertainty: The lowlight library is a cjs [img1], and the react-syntax-highlighter library imports it[img2], using the esm mode import method.
@thekevinbrown
The following link I tried to use SyntaxHighlighter and didn't seem to find the problem, please help add the minimized demo to troubleshoot.
https://stackblitz.com/edit/vitejs-vite-rcr1dn?file=src%2FApp.tsx,eslint.config.js,vite.config.ts,src%2Fc.js&terminal=dev

I've tried to minimise the demo and I think we're already at minimum viable reproduction. Here's what's going on:

There's a builder package that uses vite.
There's a CLI that uses the builder package.
When we use setup with exactly the same configuration in an example in our own monorepo it's fine and works.
When we build the packages and install them in node_modules (what the pack step is doing) it stops working.

So I'm not sure how to get that pack step to replicate in stackblitz. It's required to reproduce the issue. If you want I can drag in file dependencies to stackblitz, but then you won't be able to test any changes to fix the issue. We already have an open source repro available, so I'm not sure how much we'll learn by doing that, but I'm happy to if you think it'll help. I'd basically just be dropping what is created in app into stackblitz so you can see it run there.
I suspect this is only something that happens with our plugin / building setup, as like your example, if you just use vite and drop that package in it's fine. And equally, if I drop react-syntax-highlighter into one of our examples in our monorepo with the same config, it works fine. It's just the built version of the packages, operating from node_modules that has trouble, and I have no idea why that is at this stage.

The issue might be similar to https://github.com/vitejs/vite/issues/16293#issuecomment-2024381009. There's a difference in how optimize deps works when dependency is coming pnpm workspace:* and coming from published version.
If you're publishing a package (@exogee/graphweaver-admin-ui-components in your case?), which itself is not optimized but it's using cjs dep internally, then you might need to write optimizeDeps.include: ["@exogee/graphweaver-admin-ui-components > some-cjs-dep"] to force optimization.

I tried using @exogee/graphweaver-admin-ui-components > lowlight in optimizeDeps, same error. What specific line did you want me to try putting there? Is two > a thing, e.g. @exogee/graphweaver-admin-ui-components > react-syntax-highlighter > lowlight?
If I need to do this style of syntax, I'm confused as to why all the other CJS modules imported by our various monorepo packages work, e.g. this list we already have in the Vite config is needed and is definitely working for those dependencies: https://github.com/exogee-technology/graphweaver/blob/main/src/packages/builder/src/vite-config.ts#L59 and none of them start with one of our package names. Why would we need to do a different optimizeDeps syntax for lowlight versus something like nullthrows which we don't depend on directly either?
In terms of published packages, we have:

@exogee/graphweaver-admin-ui: The main entry point for Vite, has the pages, Apollo Client and main index.html
@exogee/graphweaver-admin-ui-components: Components that we rely on in Admin UI, and you can also use in your custom pages / fields to match the UI of the rest of the admin area.
@exogee/graphweaver-auth-ui-components: Components needed for auth. Not everyone needs or uses these.

For this specific case, lowlight is a dependency of react-syntax-highlighter, which we use in @exogee/graphweaver-admin-ui-components, but as you can see from our existing Vite config, we've had to do trial and error with optimizeDeps until the errors go away every time we try to bring in a new module, and it only breaks once we build and publish the result, hence why we now have an integration test for this.
Even weirder about this one in particular is if you look at the main branch, we're currently using react-code-blocks for syntax highlighting, which itself uses none other than react-syntax-highlighter to do the job, and that works fine! The reason for the change is to bring down our bundle size, but I can't get Vite to be happy and package the dependency yet.

If I need to do this style of syntax, I'm confused as to why all the other CJS modules imported by our various monorepo packages work, e.g. this list we already have in the Vite config is needed and is definitely working for those dependencies:

Yeah, I was confused about that too. I was just hoping it might give some clue. Btw, if you have optimizeDeps.include which is not directly visible from user project's node_modules (e.g. due to pnpm's non-flat structure), then Vite should give a warning like Failed to resolve dependency: ..., present in 'optimizeDeps.include'. Have you seen something like this before? Or do you ensure all dependencies in optimizeDeps.include are also user project's direct dependency?
https://github.com/vitejs/vite/blob/83355a6529092b3a576e2c24bbd8f9097f7ef569/packages/vite/src/node/optimizer/index.ts#L859

I pulled your project locally and tweaked optimizeDeps.include. I think the issue matches with what I expected and a following config seems to make it work:
        // 'react-syntax-highlighter > lowlight',
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/styles/prism/coldark-dark",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/languages/prism/graphql",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/languages/prism/typescript",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/languages/prism/json",

Failed to resolve dependency: ..., present in 'optimizeDeps.include'. Have you seen something like this before?

Yes, we see that warning quite a bit. I don't know what to do about it, because if we remove them from the optimizeDeps list then it breaks, and I don't want them cluttering up their package.json with a bunch of our dependencies. So far we've just decided it's better to see the log spam than to have it break or force them to add a bunch of noise to their package.json and left it like that.

It should be @exogee/graphweaver-admin-ui-components > react-syntax-highlighter

I really must not understand optimizeDeps because react-syntax-highlighter is ESM, so I wouldn't have guessed that'd be the key addition, but it did actually work! I'm now getting:
Uncaught SyntaxError: The requested module '/@fs/Users/kevin/development/exogee/graphweaver/src/packages/end-to-end/app/node_modules/.pnpm/refractor@3.6.0/node_modules/refractor/lang/graphql.js?v=84067e35' does not provide an export named 'default' (at graphql.js?v=84067e35:1:8)

I tried adding refractor in the list and it didn't work. I added @exogee/graphweaver-admin-ui-components > refractor instead. Still doesn't work. I'm not actually sure what is even bringing in refractor at this stage, but I suppose my bigger question here is how can I figure out what to put in optimizeDeps for these errors without just trying all the possibilities? Is there some way to look at the error and/or node_modules structure and know what needs to go in optimizeDeps?
I feel like I'm just not understanding what optimizing dependency does at this point, and I think if I had a better understanding of the differences between the node_modules behaviour vs not node_modules behaviour this might make more sense to me.

I pulled your project locally and tweaked optimizeDeps.include. I think the issue matches with what I expected and a following config seems to make it work:
        // 'react-syntax-highlighter > lowlight',
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/styles/prism/coldark-dark",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/languages/prism/graphql",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/languages/prism/typescript",
        "@exogee/graphweaver-admin-ui-components > react-syntax-highlighter/dist/esm/languages/prism/json",

Can confirm, works great! Thank you so much!
So my flow should basically be "If a new import breaks it, match the import in optimizeDeps, ignoring the internal complexity of all the stuff that module does with its own imports / requires"?

So my flow should basically be "If a new import breaks it, match the import in optimizeDeps, ignoring the internal complexity of all the stuff that module does with its own imports / requires"?

Yeah, I think that's basically right. By making react-syntax-highlighter pre-bundled, it means that it bundles react-syntax-highlighter and also anything dependencies reachable inside.
Now I'm thinking this further and isn't it maybe possible to optimize @exogee/graphweaver-admin-ui-components entirely? It looks working for me when tweaking it locally. Do you have any concern about this?
Note that usually users don't need to configure optimizeDeps.include at all since all dependencies are supposed to be discovered automatically as explained in https://vitejs.dev/config/dep-optimization-options.html#optimizedeps-entries Probably your project setup is rather unique (like root config is inside node_modules/@exogee/graphweaver-admin-ui https://github.com/exogee-technology/graphweaver/blob/06560aeec43b30fd9eeeecaf49979ebbc05a5a9d/src/packages/builder/src/start/frontend.ts#L18-L42), so maybe that maybe breaking Vite's heuristics and failing to discover dependencies to pre-bundle.

Now I'm thinking this further and isn't it maybe possible to optimize @exogee/graphweaver-admin-ui-components entirely? It looks working for me when tweaking it locally. Do you have any concern about this?

Then we end up with a bunch of ghosts in the machine kinds of errors while we're working, because changes to the components only show up in our examples when we delete the node_modules folders entirely then rebuild from scratch. Newer devs are confused as to why build doesn't actually build the project, and even for those of us who get what's going on it's a very slow workflow. We have to do a clean every time there's any change to any component if you want to see it in an example.
And yup, I never knew about or cared about optimizeDeps until we built Graphweaver, and we had used Vite quite a bit before then, but now I need to understand it better, so thanks for the help!

I feel like I'm just not understanding what optimizing dependency does at this point, and I think if I had a better understanding of the differences between the node_modules behaviour vs not node_modules behaviour this might make more sense to me.

Also commenting on this, what's happening is that Vite treats a path with /node_modules/ differently. As explained in https://vitejs.dev/guide/dep-pre-bundling.html#monorepos-and-linked-dependencies, symlink-ed package (which is the case for workspace:* on pnpm monorepo) has a real path inside your project and is located outside of /node_modules/, so pre-bundling dependency discovery heuristics works more naturally. But then, the same heuristics doesn't apply once your package lives inside /node_modules/.
We are aware that this inconsistency is not ideal and also figuring out optimizeDeps.include like this-dep > that-dep is pretty hard, but this is tracked in https://github.com/vitejs/vite/issues/16293, so I think we can close your issue for now.

Yup, agree. Thanks again for the help!


when I use the model I trained , the cuda will out of memory, but if I use the pretained model it`s fine

Hi ,
I have some problem when I try to use the model I trained.
The first question is that , I use the config of vit-h and my GPU is rtx A6000 48g, when I train the model with the vit_h pretrained model , there are no error. But after trained ,when I want to use the model I trained to run test.py , the cuda will out of memory. I aready try batch_size=1 but the error still happen.
The another question is when I try to use 2 gpu to train or test the model whit the .pth I saved , the first GPU will run all local_rank process , and this condition will make the cuda out of memory.

Hello, I have also encountered the first situation you mentioned. May I ask if you have resolved it？

Hello, I have also encountered the first situation you mentioned. May I ask if you have resolved it？

Hello, I also met the same situation, may I ask you to solve it

@shhjjj @lixhere @WenDongyp @tianrun-chen in test.py  try this code
    **with torch.no_grad():**
        pred = torch.sigmoid(model.infer(inp))


Refactor local setup scripts to support multiple RS instances

Description:
Currently local development setup scripts only work assuming there is only one RS is up and running on the local machine, it is desirable that our local dev setup can spin off multiple RS instances (and their corresponding dependent services) on local machine.
The issues:

Scripts contain hard coded docker container names that are docker compose version sensitive - e.g. the container name mangling are different on different OS, for example - note that dash vs under score used respectively:

On linux Ubuntu: prime-router_prime_dev_1
On WSL Windows: prime-router-prime_dev-1

Ports are hard coded - both services ports and debug ports

AC:
the scripts and docker compose files refactored such that multiple RS instances can be setup and up and running simultaneously on local machine.
Assuming that each local RS repo can host one RS instance (and its dependent services)

@JFU-NAVA-PBC Please amend this ticket to use the Platform User Story template via Github.

@JFU-NAVA-PBC Please move to ready for grooming or let me know if we should icebox this story.


allow 1.x version range

fixes #5

Carbon v1.0.0 would be also allowed but doesn't have parse(), see https://github.com/briannesbitt/Carbon/blob/d59535c3175d1188baea460bd7772d41ea227b56/Carbon/Carbon.php
Function needed from Carbon:
if (Carbon::parse($this->config["valid_until"])->gt(Carbon::now())) {
			return true;
		}
// ...
$this->config["valid_until"] = Carbon::now()->addSeconds($response["expiresIn"])->toDateTimeString();

Alternatively, you could also write this in plain PHP and remove Carbon dependency.

I have added a commit which uses minimal 1.22.1 and allows anything up until semantic 2.0.0 is released. They shouldnt break existing functions in 1.x, only add features or fix bugs.

Thanks!


Resolver breaks when specifing higher level versions for the RPM resolver.

I am looking for a way to specify higher lever versions for the RPM resolver.
Trying a package lists like below, breaks the resolver.  Or the open-driver cannot be found, or messages that there are conflicts.
# trying to resolve all dependencies that work with the specified driver version
packages:
    noGPGCheck: true
    packageList:

      - nvidia-open-driver-G06-signed-kmp-default=545.29.06
      - nvidia-compute-utils-G06
      - nvidia-gl-G06
      - nvidia-container-toolkit
    additionalRepos:
      - url: https://download.nvidia.com/suse/sle15sp5/
      - url: https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64

# trying to resolve all dependencies that work with compute utils
packages:
    noGPGCheck: true
    packageList:

      - nvidia-open-driver-G06-signed-kmp-default
      - nvidia-compute-utils-G06=545.29.06
      - nvidia-gl-G06
      - nvidia-container-toolkit
    additionalRepos:
      - url: https://download.nvidia.com/suse/sle15sp5/
      - url: https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64

# trying to specify higher level versions for all dependencies
packages:
    noGPGCheck: true
    packageList:

      - nvidia-open-driver-G06-signed-kmp-default=545.29.06
      - nvidia-compute-utils-G06=545.29.06
      - nvidia-gl-G06=545.29.06
      - nvidia-container-toolkit
    additionalRepos:
      - url: https://download.nvidia.com/suse/sle15sp5/
      - url: https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64

Example output of the logs:
In the case below I fixed the version of compute utils but it still want to installs the latest driver that is not compatible.
Resolving package dependencies...

Problem: nothing provides 'kernel-azure' needed by the to be installed nvidia-driver-G06-kmp-azure-545.29.06_k5.14.21_150500.31-150500.19.1.x86_64
 Solution 1: Following actions will be done:
  do not install nvidia-gl-G06-545.29.06-150500.19.1.x86_64
  do not install nvidia-compute-utils-G06-545.29.06-150500.19.1.x86_64
 Solution 2: do not install nvidia-open-driver-G06-signed-kmp-default-550.54.14_k5.14.21_150500.55.49-1505<IP_ADDRESS>.x86_64
 Solution 3: break nvidia-driver-G06-kmp-azure-545.29.06_k5.14.21_150500.31-150500.19.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c/d/?] (c): c

I tried the corresponding installs using Leap Micro (zypper) and there it seems to work well. So wondering what I am missing or doing wrong :)?

@mpas thanks for raising this. Can you please provide the full log of the podman-image-build.log, I am curious whether there are additional errors related to the https://nvidia.github.io/libnvidia-container/stable/rpm/x86_64 additional repository.

@mpas OK, I spent a bit of time on this and I think I can see what's going on here...
If I don't specify any versions at all, the resolver logic can figure things out well. Reason being, when we specify nvidia-compute-utils-G06 it will find this in the https://download.nvidia.com/suse/sle15sp5/ repo, and there's a corresponding version that matches the nvidia-open-driver-G06-signed-kmp-default package in the SLE Micro repos. Hence this works.
The problem is when you specify versions that do not exist in the equivalent NVIDIA repo. If I look in that repo today, it seems that there's only the 550.54.14 version of that package, and the resolver logic will try and force a resolution where it thinks that the only way to satisfy this requirement is to pull in the unsigned kernel module from NVIDIA which is for kernel-azure; not what we want.

Closing this issue given that this isn't a core problem with the way that Edge Image Builder is handling RPM dependency management. This is due to the nature of the changing repo's on the NVIDIA side that we're tracking elsewhere.


[plugin tools] Make a pigeon roller command

As we adopt pigeon in more plugins, it would be useful to have a tooling command that would update Pigeon and all the Pigeon generated code in given target packages.
/cc @tarrinneal

https://github.com/flutter/packages/pull/3544 is an example of why we should have this, beyond just making it easier to get the latest updates (an issue where using an old Pigeon prevented other updates).

This was fixed in https://github.com/flutter/packages/pull/3640


client, use AssertingClient in TestBase Builder

for data-plane
https://github.com/Azure/azure-sdk-for-java/pull/33921#discussion_r1203039372

https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-test/src/main/java/com/azure/core/test/http/AssertingClient.java
https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-test/src/main/java/com/azure/core/test/http/AssertingHttpClientBuilder.java

code likely be
    private BasicAsyncClient client = new BasicClientBuilder()
            .httpClient(new AssertingHttpClientBuilder(HttpClient.createDefault()).assertAsync().build())
            .buildAsyncClient();

    private BasicClient syncClient = new BasicClientBuilder()
            .httpClient(new AssertingHttpClientBuilder(HttpClient.createDefault()).assertSync().build())
            .buildClient();

However in TestBase, it only create a Builder. Hence it be difficult on whether we should do assertSync there, or assertAsync there.


Fix #1417 - poetry env commands are not using correct package name

As outlined in issues #1417 and #1425, the poetry env commands are behaving unexpectedly when the package name specified in pyproject.toml differs from the directory name of the package.
This PR tries to fix this behavior.
I changed the current tests to use the package name instead of the directory name, I assume that's good enough for this issue. If more testing is needed, let me know.

Thanks for your contribution!
However, this is superseded by #1477 so I am closing your PR.


Rewrite MaxLineLength to avoid problematic offset calcs

Warnings

:warning:
It looks like this PR contains functional changes without a corresponding test.

  Generated by :no_entry_sign: dangerJS against eef6467b46a41bacd7bd119f691e19afe85a1583


Gulp prod

Why when i execute gulp prod and the see the main.js file in /build i see code whit absolute routes?
Like

"C:\..\User\Documents\xxx\xxx\node_modules\angular\index.js"

+1 I also see them, I have no clue why they are for

This is not a problem, this is just a result of the Browserify step. It's how Browserify identifies and refers to all the different local files you've require'd throughout your project.
You could use something like remapify to clean these paths up a little bit, but I don't know of any way to eliminate them entirely.

Already found the solution to this.  Good catch :+1:


added ansicolor wrapper to the PR checks and npm publish templates

I'm not in the code owners/reviewers for this repo, I'll ping folk


use relative paths in constructing path

use relative paths in constructing path.  faraday ignores trailing paths in urls when the path starts with a slash.  see: https://github.com/lostisland/faraday/issues/293
example: an api_url that has a trailing path like this:
config.api_url          = 'https://www.validic.com/api'
will result in a call like this:
https://www.validic.com/v1/organizations/1/apps.json
instead of
https://www.validic.com/api/v1/organizations/1/apps.json

Well, that's certainly a TIL but I understand why. We're using the Faraday::Request#url method to build and set the path when we make the requests (the referenced Faraday ticket shows the .get method but I can confirm #url has the same behavior).
Unit tests are still passing where we explicitly check for path correctness (ie here).  That said, this doesn't check host in most places but we should at least somewhere.


Frustum culling on GPU via compute shader

Useful article on the topic: https://vkguide.dev/docs/gpudriven/gpu_driven_engines/


FCM docs example only works on iOS, but advertises itself to work on both platforms

https://notifee.app/react-native/docs/integrations/fcm
The example here uses await messaging().registerDeviceForRemoteMessages();. However, according to their docs, this function only works on iOS, and it does nothing on Android (I have not confirmed that it does work correctly on iOS for me, I do not have a mac in the room). On Android, the entire snippet for getting a token is giving me this error:
Error: No Firebase App '[DEFAULT]' has been created - call firebase.initializeApp()
My proposed fix is to clarify the docs to say that the code example is only for iOS. (An Android example is already present in the rnfirebase docs anyway)

Sorry, the problem was that I was using Expo and I needed some setup - the code in the doc actually works for me, but only after doing the Expo setup that was in the react-native-firebase docs: adding to app.json the googleServicesFile and the @react-native-firebase/app plugin, and rebuilding with --clean.


[Question] Adjust options to resolutions

I was wondering if there is some support of adjusting the options to different resolutions.
For example taking this example: http://codepen.io/anon/pen/NGqNwP
The same way the graph adjusts according to it's container width/height, also adjust the ticks of the axes (and perhaps the font-size).

Hi @PoOoZaQ
you could use Media Queries in JS with matchMedia or a wrapper like enquire.js. Now you can define breakpoints to make your visualization responsive.
Here is a demo: http://codepen.io/chaosmail/pen/yYgJyq
Best,
Christoph

And is there a way to cause the line-chart to completely re-draw?
The use-case is when a resolution is changed, I might adjust certain options, and I would want the graph to redraw

The graph redraws automatically when the options have changed. If you want to redraw the graph without changing options, you could simply toggle some random option:
$scope.option.someRandomOption = !$scope.option.someRandomOption;
Best,
Christoph

Cool thanks


Consider using crashreporting

dd-trace-dotnet now has crashreports, we should learn how it works and how to receive it for debugging/crashing purposes

Assert failure(PID 112949 [0x0001b935], Thread: 112963 [0x1b943]): TypeFromToken(pd) == mdtParamDef
    File: /home/korniltsev/github/runtime/src/coreclr/md/compiler/import.cpp Line: 2749
    Image: /home/korniltsev/p/pyroscope/examples/language-sdk-instrumentation/dotnet/rideshare/example/bin/Release/net8.0/linux-x64/publish/example

Datadog - The crash may have been caused by automatic instrumentation, sending
crash report...
Datadog - Some errors occurred while analyzing the crash:
- Failed to send crash report: ddog_crashinfo_upload_to_endpoint failed: error
trying to connect: tcp connect error: Connection refused (os error 111): tcp
connect error: Connection refused (os error 111): Connection refused (os error
111)
waitpid() returned successfully (wstatus 00000000) WEXITSTATUS 0 WTERMSIG 0


Add support for symbol tree view

Bring support for the Symbols View extension. This inherits the tag parsing from the symbols view package, which leads the matching regexes into ctags from out of the ctags-config file.
Subsequently this would also bring GLM support to the Symbols Tree View package. This might however require some additional fixup.
Ideally multi-line regexes are supported, to provide more context for matches. In this regard the GLM syntax is somewhat unfortunate. Ideally I would like to provide some information on the type of object with the name or id. Likewise, it would make sense to add support for unnamed definitions. I created an issue at the symbols-view project regarding multi-line regex support: https://github.com/atom/symbols-view/issues/189
I'm very eager to hear from daily GLM users about the that details should be visible in symbols view.

Regarding name, a regex like ^\s*name\s+(\w)* could perhaps be sufficient.


No license

Hi, it seems like no license is attached to this repo yet. This would imply exclusive copyright by default, as stated here.
Assuming this is just an oversight, a license should probably be added to avoid any doubt that this repo is open source.

There is the license (here)[https://github.com/react-native-community/react-native-hooks/blob/master/package.json#L15], but I might as well add it as a file.

Addressed in https://github.com/react-native-community/react-native-hooks/pull/57.

My bad, it didn't occur to me to look there. Thanks anyway for the change!