Documentation about this API

This project is helpful and I was able to read off some parameters from my heat pump system. However I'm missing some kind of meta-information about this project and the API it uses.
Is there any kind of information about this API, or has all of this been reversed engineered? Is there anyone that can be contacted to answer some questions?
By the way: I also have the GLT license available, so I could double-check some aspects using the "official" Modbus API for instance.

Thank you for all of the work you apparently put into this.

I mostly relied on reversing the Android App using a decompiler.

Seems like you did quite a lot of reverse engineering. Really sad to see that this isn't officially documented, there is basically nothing to loose for the manufacturer and a lot to gain (integrations, etc.).
In any case, the link to the Loxwiki is also interesting (I'm a German so no problem for me).

The code was far from easily readable but still it was obvious that it was littered with if else constructs that reused some of the values for other purposes if other values had a certain value and so on, a f*** mess, probably historically grown with the requirement of being backwards compatible till the stone age of Altpha Innotec / Novelan / ....

The current code is actually quite nice, although there are still many unknowns (not your fault). But the generic structure (from what I can tell), looks quite professional.

If you want to have a chat, you can send me an email at bouni-luxtronik at owee dot de

Will do.

Regrding the GLT licence, I know a guy that took the reversing even further and was able to get the root password for ssh into the heatpump and even activate GLT without actually having the licence. But I'll not disclose how to do that for obvious reasons.
All I can say is that the GLT interface gives far less info that thr TCP method.

Well, I also tried some well-known passwords, but they didn't work for me. Definitely interested in logging into my heat pump via SSH, though. Let's discuss this via mail.
By the way: Does this API (TCP packets on port 8889) have some kind of semi-official name? Any obvious strings in the API / decompiled source code that you've worked with?
Since there is also other APIs (websockets, etc.) I'm trying to find out what the differences are and what kind of services are exposed by my heat pump. I can see at least the following open ports:
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
502/tcp   open  mbap
8214/tcp  open  unknown
8889/tcp  open  ddi-tcp-2
36000/tcp open  unknown

22/ssh and 80/http are clear, the rest is unknown to me (other than the port used by this library).
So some of the questions that I'm currently looking answers for are:

What kind of APIs services are exposed by my heat pump?
What port is related to which API?
Why are there multiple APIs (TCP port, web socket)?
What are the differences between the different APIs? Is there a reason for those differences other than "historically grown pile of shit"?
How is "heatpump24.com" working, i.e. how is it connecting to my heat pump? (I'm not using it, just want to understand what is technically going on there).
Which Android app have you been using for reverse engineering?
Has anyone contacted the manufacturer to ask for details? At least the "Kundenservice" was quite nice in my case, but I didn't know enough to ask useful questions back then.

I'm happy to create some basic documentation to explain this to the best of my knowledge, but so far my knowledge is still very limited ;-).

Thank you for the valuable input @BenPru!
I will try to write a summary, which could be used here (or in your repository) as an overview and starting point for new people joining the project.

8888 and 8889 are normal (unix?)-sockets which provides the raw values from the internal controller. 8888 is the legacy version.
8214 is the websocket which is used for the web interface on port 80.

Do you happen to know what kind of differences there are between those two versions? Websocket sounds nice of course, but I've read somewhere that the legacy API is more powerful?
By the way: Since those services are exposed via network ports, those are not Unix-sockets. Unix domain sockets are basically (pseudo-)files that can be used for interprocess communication. They behave similar to TCP sockets in many aspects, but the main difference is that they are not exposed via network.
See https://serverfault.com/questions/124517/what-is-the-difference-between-unix-sockets-and-tcp-ip-sockets for more details in case you're interested.

The "socket"-api exposes 3 groups of values. I think they are all the raw values from the heatpump.

parameters ID 3003: In "ROM" stored config value which can be changed by customer, technican or the system (e.g. runtime hour counters).
calculations ID 3004: Calculated and not stored values like current temperatures and so on.
visibilities ID 3005: Bool flags to provide informations about activated options and available hardware components.

Thank you again for this summary. Are those terms (parameters, calculations, visibilities) terms that have been extracted from the firmware / app and are "official", or is this what @Bouni came up with? I've struggled in the beginning with those terms and still don't quite like them. It not important once you know what they are about, but still weird terms from my point of view.

For example the flow in and out temperatures are calculations (3004) 10 and 11 in the socket.
In the websocket the flow in and out temperatures are in group "Temperaturen (@id=0x0x594240)" with @id 0x0x598308 and 0x0x58d5e0.

So groups can also have IDs? Didn't know that yet. Are those groups similar to the available menu entries on the Luxtronik controller itself?

In my case the heatpump pushes every 5 hours the current values to heatpump24.com. Also grep config changes.

Okay, one more reason to block Internet access for my heat pump :-).

For example you can unzip the firmware from download portal. In this is a client web app which connects the websocket.
I have tested it with python.

Cool, will look into this. I've also tested the websocket implementation and was rather shocked about how instable it is. I was able to crash my controller by sending 4 bytes to it.
Maybe you can test/verify this:
#! /usr/bin/env python3

import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
client.connect(("<IP_ADDRESS>", 8214));
client.send("Lux_WS".encode());

For me this halts the controller. After about 5 seconds, it gets rebooted (via a Watchdog or so). I've also recorded a video about this: https://www.youtube.com/watch?v=lhcy8SzfIxY
I've already reported this to Alpha Innotec, hopefully they are working on fixing it. Would be interesting to know if others are also affected by it, though.

Yes, but I get not much informations.

Well, haven't asked specific technical questions, but they sounded helpful to me. Do we have a list of essential questions that we want to know more about?

Do you happen to know what kind of differences there are between those two versions?

No.

Websocket sounds nice of course, but I've read somewhere that the legacy API is more powerful?

Yes.

Are those terms (parameters, calculations, visibilities) terms that have been extracted from the firmware / app and are "official", or is this what @Bouni came up with?

They are not official.
parameters have two "ids" one for read and one for write.

So groups can also have IDs? Didn't know that yet.

In the Websocket groups have ids. But all ids are temporarly! And the Names are hardcoded in german I think.
So you can't match anyhing.

Are those groups similar to the available menu entries on the Luxtronik controller itself?

No.

After about 5 seconds, it gets rebooted

Last week I have updated from 2.86.0 to 2.88.1 and the new version seems to be not so stable. Ait is bugfixing.
I think the reconnect on every command is a problem.
I have changed this and after more tests I will push it as pr:
https://github.com/BenPru/python-luxtronik/blob/Optimizing-data-reques/luxtronik/__init__.py

Do we have a list of essential questions that we want to know more about?

We use a internal api. 8889 can used without passwort or security. You can write all values.
I don't think they support the internal api.

Thank you for your findings.

Last week I have updated from 2.86.0 to 2.88.1 and the new version seems to be not so stable. Ait is bugfixing.

Do you know if the Luxtronik controllers can also be downgraded, or are you know stuck with 2.88.1?
By the way: Support told me that they're currently working on a new version with new features (Energy monitoring), which is supposed to be released soon.

I think the reconnect on every command is a problem.
I have changed this and after more tests I will push it as pr:
https://github.com/BenPru/python-luxtronik/blob/Optimizing-data-reques/luxtronik/__init__.py

Will you try to get this integrated here? Is your repository just a fork with the intention to get changes integrated back here, or do you plan to run your own fork?

We use a internal api. 8889 can used without passwort or security. You can write all values.
I don't think they support the internal api.

That sounds bad. We should probably try to report this.
Have you ever had a look at the other open ports?
# netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 <IP_ADDRESS>:36000           <IP_ADDRESS>:*               LISTEN      370/appl
tcp        0      0 <IP_ADDRESS>:80              <IP_ADDRESS>:*               LISTEN      354/httpd
tcp        0      0 <IP_ADDRESS>:502             <IP_ADDRESS>:*               LISTEN      370/appl
tcp        0      0 <IP_ADDRESS>:8214            <IP_ADDRESS>:*               LISTEN      370/appl
tcp        0      0 <IP_ADDRESS>:22              <IP_ADDRESS>:*               LISTEN      350/dropbear
tcp        0      0 <IP_ADDRESS>:8889            <IP_ADDRESS>:*               LISTEN      370/appl
netstat: /proc/net/tcp6: No such file or directory
udp        0      0 <IP_ADDRESS>:46346           <IP_ADDRESS>:*                           363/appl
udp        0      0 <IP_ADDRESS>:4444            <IP_ADDRESS>:*                           368/appl
udp        0      0 <IP_ADDRESS>:5002          <IP_ADDRESS>:*                           358/bootmgr
udp        0      0 <IP_ADDRESS>:502             <IP_ADDRESS>:*                           370/appl
netstat: /proc/net/udp6: No such file or directory

I don't think they support the internal api.

Probably not, but we could still ask and see what they will reply. I have quite a good and respectful person of contact.

Do you know if the Luxtronik controllers can also be downgraded, or are you know stuck with 2.88.1?

Yes, the support says the downgrade is possible. But I think I stay on 2.88.1. I have optimize the connection on request site.

Energy monitoring

Yes, 2.88.1 has energy monitoring features: see thread https://github.com/BenPru/luxtronik/issues/59#issuecomment-1369405019

Will you try to get this integrated here?

I have added two sensors for this domestic_water_energy_input and heat_energy_input. See pre-release 2023.01.07

Is your repository just a fork with the intention to get changes integrated back here, or do you plan to run your own fork?

Bouni/python-luxtronik is the connection module to connect with python to luxtronik socket 8888/8889.
Bouni/luxtronik uses python-luxtronik and is a ha integraion (key=luxtronik) which can be installed with hacs. You have to configure every sensor by yourself via yaml. It provides ha domains sensor and binary_sensor which are readonly. Write command can be used with the service 'luxtronik.write'.
BenPru/luxtronik started as fork but now it is a clone. My plan is not to merge something back. You can manually install it with hacs as userdefinied repo (key=luxtronik2). You can also create sensor and binary_sensor with the same yaml config (just rename the main key to luxtronik2) and use the service. But it creates devices and many sensors (including writable sensors) automaticly by detecting the visibilities. It has ha domains update (Firmware check), switch, number, climate (thermostat heating, domestic water and cooling).
Short overview of my lovelace view:

Currently I'm trying to extend BenPru/luxtronik and provide it as ha core integration. See repo https://github.com/BenPru/core-1/tree/luxtronik.
PR in the ha core main are only reviewed with single ha domains (climate, sensor) so I plan to push only one domain in the first step. I will create another branch there or copy it to a branch in BenPru/luxtronik and provide it with all domain sensor for tests with other users.

A big step is done with the better communication (https://github.com/BenPru/python-luxtronik/tree/Optimizing-data-reques).
I have to create unit tests and so on. Interested in helping?
Climate heating handling has to be finalized and optimized. https://github.com/BenPru/luxtronik/issues/3 @rhammen was working on this

Have you ever had a look at the other open ports?

No, just the websocket post 8214. See python test.

Yes, the support says the downgrade is possible. But I think I stay on 2.88.1. I have optimize the connection on request site.

That sounds good.

I have added two sensors for this domestic_water_energy_input and heat_energy_input.

Cool, wasn't aware of that yet.

Short overview of my lovelace view:

Is this what you get by default, or after (heavily) customizing your integration? The amount of data looks pretty interesting.

I have to create unit tests and so on. Interested in helping?

Yes, definitely, that's also what I'm very familiar with. Happy to provide some infrastructure for unit testing Python code.

How can I start TDI manually "now"?

I would also like to know that. If you figure it out, let me know :-).

The circulation_pump_heating (calculations.ID_WEB_HUPout) runs very often. Sometimes about 18 hours/day without a heating/water requests for days and outdoor temp about 10 C° (no frost protect needed). Why? How can I control this?
Can we listen for events (websocket or socket) to change the handling from pull to push?
Push value changes / callbacks #38
Websocket: How can we unique identify the values? (name is short in german and ids change every request)
How to request the firmware revision over the socket?
Changelog V2.88.1

Good questions, unfortunately I cannot answer them.
I have de-compiled the application by now and could try to figure out some of the details from the binary running on the controller. However most of this is really time-consuming, and so far that's my biggest limitation :-).

Is this what you get by default, or after (heavily) customizing your integration?

The integration has grown over time.
The current version of my integration creates the most of it out of the box.

@kbabioch : Which decompiler do you use? I just have disassembled the firmware, but reading assembler is....

@BenPru : Do you think that circulation_pump_heating (calculations.ID_WEB_HUPout) is a electrical heating of the circulation pump? I would guess that this only means that the circulation pump (for the heat circuit) is running, i.e., "HUP" stands for "Heizungsumwälzpumpe" and "out" means that this is an output of the heat pump. This could be the "HUP" listed under "Ausgänge" in the websocket interface.

@BenPru : Do you think that circulation_pump_heating (calculations.ID_WEB_HUPout) is a electrical heating of the circulation pump?

No. It is the heating circulation pump.
I think this is a mistake. It should be heating_circulation_pump.

@kbabioch : Which decompiler do you use? I just have disassembled the firmware, but reading assembler is....

ghidra. It de-compiles most of the appl binary just fine, although there are sections that are not properly analyzed and it's really hard to understand (menues on the controller).
I'm not too familiar with ARM assembler, so anything that is not de-compiled is tricky for me.

I would guess that this only means that the circulation pump (for the heat circuit) is running, i.e., "HUP" stands for "Heizungsumwälzpumpe" and "out" means that this is an output of the heat pump. This could be the "HUP" listed under "Ausgänge" in the websocket interface.

No. It is the heating circulation pump.
I think this is a mistake. It should be heating_circulation_pump.

Sounds to me that you're talking about the same thing here?

By looking at the firmware, I don't think that it is possible to say that the TDI should start now. It can only start at midnight. One workaround would be to change the clock (or the time zone?) of the heatpump such that midnight happens when the sun is shining (e.g. PV energy is available).

That's a pitty.

The problem with that approach is that it will turn on the inverter / compressor, which means there is physical stress to a component that has only limited amount of life time. I would rather prevent this from happening, and use the heating rod to heat up my water without wear and tear to the system.
In my case I'm not even wasting energy, since my PV system needs to limit itself during peak hours ("70% Regelung"), so I would rather heat up my water than to not use the excess energy.
Maybe I should ask the support, if they would be willing to add such a feature as Kurzprogramm or something like this. The energy management capabilities are rather limited currently.

The problem with that approach is that it will turn on the inverter / compressor, which means there is physical stress to a component that has only limited amount of life time. I would rather prevent this from happening, and use the heating rod to heat up my water without wear and tear to the system.
Yes, but currently, TDI is doing the same thing? And in summer, when you only need warm water, you also start the inverter just for heating your water. I do not see why using the heating rod afterwards means additional stress to the system.

Yes, but currently, TDI is doing the same thing? And in summer, when you only need warm water, you also start the inverter just for heating your water. I do not see why using the heating rod afterwards means additional stress to the system.

Yes, currently that's the case. Would prefer to easily enable / disable the heating rod, though. I would like to implement some logic to turn on the heating rod, whenever there is an PV excess for more than a couple of minutes and when the energy would be "wasted" otherwise. I don't think I want to turn on the compressor on and off all of the time.
Currently I'm just looking into the technical feasibility. Unfortunately it seems that what I have in mind is not easily possible. That's unfortunate. Thank you for looking into it, anyway.

Yes, but currently, TDI is doing the same thing? And in summer, when you only need warm water, you also start the inverter just for heating your water. I do not see why using the heating rod afterwards means additional stress to the system.

Yes, currently that's the case. Would prefer to easily enable / disable the heating rod, though. I would like to implement some logic to turn on the heating rod, whenever there is an PV excess for more than a couple of minutes and when the energy would be "wasted" otherwise. I don't think I want to turn on the compressor on and off all of the time.
Currently I'm just looking into the technical feasibility. Unfortunately it seems that what I have in mind is not easily possible. That's unfortunate. Thank you for looking into it, anyway.

Looks like the discussion on TDI is taking place in 2 separate threads.
Have a look at my reply in the other thread: https://github.com/BenPru/luxtronik/issues/4#issuecomment-1383997313

Can anyone extract the names of the new values in V_.88._?
Parameter 1126-1140
1136 is heating_energy_input and 1137 is domestic_water_energy_input
Calculation 260-262
Visibility 355-364

As far as I remembered I extracted the names out of the Android App.
Not sure if they are in the pump firmware itself

I haven't found a comprehensive list of names / values for parameters yet. Only some references to getParameter and storeParameter next to variable names when they are used.
@gerw Any more luck with this yet?
Anyone (still) able to de-compile the Android app?

No, I also do not see how to make the connection between the parameter names and their number.

I decompiled the Android App but couldn't find any sort of list containing any names. To be honest I do net even remember where exactly I found the original list of names 🤔

Maybe the list is in the java-application of the old webinterface? (I do not have the java application since my heat pump is too new)
Btw.:

Is there a changelog available for the different firmware versions?
My firmware version is something like V3.85.6 while others here report something like V2.88.1. Thus, I guess that my 3 is related to the softwareID on heatpump24.com (although my heat pump has softwareID=2). Then, the 85.3 or 88.1 is the "real" version.

Then, the 85.3 or 88.1 is the "real" version.

Yes. V1, V2, V3 ist the heatpump Type. See download Portal
https://github.com/BenPru/luxtronik/blob/main/custom_components/luxtronik/update.py#L119

Is there a changelog available for the different firmware versions?

As far as I know, no there is no official changelog. Talked to the support regarding this, they plan to do something like this in the future, since some people have been asking for it.
Maybe if all of you could contact them regarding this (AIT DE Customer Support Center<EMAIL_ADDRESS>it gets more priority. Releasing binaries without a changelog is really not good practice. I would like to know which parts of the code have been changed / modified / fixed, and what I need to look out for.

official changelog - since some people have been asking for it.

Guilty 👀 - Asking for a friend. 🤣

@gerw Any more luck with this yet?

The coupling between the parameter numbers and the names is done in the method _Z15Parameteraufrufiii. After a new parameter value has been set in the parameter array ParamCollection, this function is called and saves the parameter value a second time in a named global variable. For some parameters, some small, additional logic is performed.
In this method, there was presumably a switch  statement with (for my firmware version) 1950(!) cases. Ghidra is not able to decompile it. It is possible, if one restricts to the first 1000 statements, but I did not found anything new, only the following observations:

parameter 2 is now called DHW_CoverageOfHeatPump, where HW seems to refer to hot water
parameters 8, 19, 30, 31 (and many more) seem to be no longer in use, at least they are not assigned to a named variable.

The coupling between the parameter numbers and the names is done in the method _Z15Parameteraufrufiii

Cool, thank you for your analysis.

In this method, there was presumably a switch statement with (for my firmware version) 1950(!) cases.

Yes, that sounds messy. Probably it will be difficult to reverse engineer all of that without having the sources available. I guess most of the developers don't even know all of the details about those parameters :-).

After a new parameter value has been set in the parameter array ParamCollection, this function is called and saves the parameter value a second time in a named global variable. For some parameters, some small, additional logic is performed.

Do you understand why there are parameters and global variables? I guess parameters are read somehow from non-volatile storage (there are some param files in /home) during initialization. If I were to develop this, I would create some kind of struct (ParamCollection) and keep it in memory and only sync it back to non-volatile storage when values are changing and/or during some kind of save operation. I don't see why individual global variables would be needed, all could be accessed via a global pointer to the ParamCollection struct in memory. But I guess they did it differently.

parameter 2 is now called DHW_CoverageOfHeatPump, where HW seems to refer to hot water

In our codebase parameter 2 is:
https://github.com/Bouni/python-luxtronik/blob/973f7c98167fa837f316e63d73aecebf5a2f1785/luxtronik/parameters.py#L31
What does the change mean? Has the meaning of the variable been changed? Or only the name? Which firmware version are you working with?

parameters 8, 19, 30, 31 (and many more) seem to be no longer in use, at least they are not assigned to a named variable.

Hm, in our code base those are Unknown parameters with some IDs / names extracted from somehwere. If parameters are being re-used / changed / no longer used, it will be very difficult to understand them and keep track of this in the code.
https://github.com/Bouni/python-luxtronik/blob/973f7c98167fa837f316e63d73aecebf5a2f1785/luxtronik/parameters.py#L37
https://github.com/Bouni/python-luxtronik/blob/973f7c98167fa837f316e63d73aecebf5a2f1785/luxtronik/parameters.py#L48
https://github.com/Bouni/python-luxtronik/blob/973f7c98167fa837f316e63d73aecebf5a2f1785/luxtronik/parameters.py#L59-L60
At least for 30 and 31 I would expect that this functionality is implemented somewhere somehow, since I can see the counter for Abschaltungen and average runtime in the menu. But who knows (other than AIT) where it is currently being managed / stored :-).

I am currently working with version V3.85.6, since that version is running on my heat pump.
I do not have any precise idea, why we have global variables and the variable array. Maybe, because Einst_Zugangscode is easier to read than ParamCollection[107]?
And yes, the parameters are saved to the files appl_param1 and appl_param2. Therein, each parameter occupies 8 bytes: 4 bytes for a flag and 4 bytes for the parameter itself.
Concerning parameter 2: I don't think that the meaning has changed. I think that this is just the temperature for the warm water which was demanded and which was achieved by the heat pump.
Parameters 30 and 31: Which menu do you mean? In the code, there is no reference to variable names containing switchoff. The parameter 30 seems to be always 0 for me, but 31 takes the values 1 and 4...?

average runtime

I think this is calulated on client side: calculations.ID_WEB_Zaehler_BetrZeitWP / calculations.ID_WEB_Zaehler_BetrZeitImpVD1.
I can't find my displayed value in any parameter or calculation.

And yes, the parameters are saved to the files appl_param1 and appl_param2. Therein, each parameter occupies 8 bytes: 4 bytes for a flag and 4 bytes for the parameter itself.

Okay, so the values itself are 4 bytes. Makes sense, was wondering myself why 8 bytes are occupied when the values could be easily represented in less bytes.
Do you know anything about those flags? Are they "interesting"?

Concerning parameter 2: I don't think that the meaning has changed. I think that this is just the temperature for the warm water which was demanded and which was achieved by the heat pump.

Ah, okay, then I mis-understood it. Because the name you've mentioned was different from what the library is referring to this parameter.

Parameters 30 and 31: Which menu do you mean? In the code, there is no reference to variable names containing switchoff. The parameter 30 seems to be always 0 for me, but 31 takes the values 1 and 4...?

There is a menu on controller and also in the web interface, which displays the average runtime. I think its part of the Betriebsstunden. There you can see the total number of operating hours (heating vs. hot water) and also the number of starts of the compressor. For physical reasons you want to have a long average runtime, so that value is interesting. I was expecting this to be a parameter / calculation, but @BenPru could be right and this might be calculcated based on the other two values. Haven't had a deeper look into the firmware with this in mind.


Slack channel name

Slack currently creates a webhook per channel. The API for this concourse resource implies that you can change the slack channel name without changing the webhook. Unfortunately, changing the channel name in yml won't work...
---
jobs:
- name: some-job
  plan:
  - put: slack-alert
    params:
      channel: '#my_channel'

#my_channel needs to be the match the webhook url

Yeah, we need to remove the channel param altogether, since they don't do it that way any more.

I put in https://github.com/cloudfoundry-community/slack-notification-resource/pull/86 for this.  Would you care to take it for a spin?

@jhunt -- what's the best mechanism for me to test #86? Is there a tag for it?

No, but you should be able to build the image off of the branch and push it to DockerHub to test locally.


Set specific region for every integration

Is your feature request related to a problem? Please describe.
Currently, we are not able to set a specific region for a given service.
Describe the solution you'd like
Add a region for every ConfigurationProperties which will be prioritized and in case it was not provided the the global region will be the fallback.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Yes.


Address increased error rate for NGINX recipe post-updates

adds back base nginx recipe changes to prompt for adding a status stub if it isn't already present
switches to restart nginx using sudo nginx -s reload instead of relying on sysctl
differentiates error messages so it's easier to pinpoint issues on the error dashboard
fixes a scope issue when checking for the status stub after adding it which caused it to fail every time
adds new error code 9 indicating the installation could not complete due to missing nginx configuration

This work is put on-hold and will be re-considered in another MMF in the near future.


Mount iptables xtables.lock file in globalnet container

Basically there was a regression while hardening the Submariner Pods for
security requirements. Earlier, we used to mount the host filesystem to
"/host" mount point on the Pod and use chroot while executing the iptables
commands. The hardening PRs modified this behavior and in this process
we accidentally using a private copy of the lock file because of which we are
now randomly seeing flaky issues with Globalnet jobs.
Fixes issue: https://github.com/submariner-io/submariner-operator/issues/1430
Signed-Off-by: Sridhar Gaddam<EMAIL_ADDRESS>

Backported in https://github.com/submariner-io/submariner-operator/pull/1435

Backported in #1435

Thanks for handling the backport @skitt


[Feature] [BanyanDB] Remove ID Tag type

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
ID-typed tags are no longer used by OAP. We can safely remove this in the related repos, including

BanyanDB Java Client (planned in the upcoming v0.4.0)
BanyanDB

NOTE: Since BanyanDB is still in the stage of active development, backwards compatibility cannot be guaranteed.
Use case
No response
Related issues
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I think we could have this in 0.4.0 client. No need for 0.4.0-rc2 anymore, right?

I think we could have this in 0.4.0 client. No need for 0.4.0-rc2 anymore, right?

Yes. I think so. OAP is not using ID now.


[hmtx/vmtx] Round float values to int

I think we don't need to issue any warnings here, since we don't do that either when we round glyf coordinates.
Fixes #593

I wonder why neither Travis nor Appveyor CI have triggered for this pull request. Anybody has any ideas?

https://twitter.com/githubstatus/status/789433336083001344


Publish Library

Hi,
please publish the library on npm with passport implementation.
Thanks

Almost there... I am refactoring some thinks. Take a look at: this commit
I think that this will be the final version. I just need to update the documents and improve test coverage. Tomorrow I think it will be finished

Done!
1.8.1 is published


Feature/pkg storage

feat: ipapi fetcher rate limiter
feat: update CheckedAt value when change proxy's score
feat: add background detections to scheduler
feat: spider loop crawl with period sleeping
feat: Limiter interface
chore: rename project to IntelliProxy

Codecov Report

Merging #5 into master will increase coverage by 5.21%.
The diff coverage is 91.42%.

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
+ Coverage   72.31%   77.53%   +5.21%
==========================================
  Files           5        7       +2
  Lines         177      276      +99
==========================================
+ Hits          128      214      +86
- Misses         35       46      +11
- Partials       14       16       +2

Impacted Files
Coverage Δ

pkg/proxy/proxy.go
47.45% <0%> (-0.82%)
:arrow_down:

pkg/utils/limiter.go
100% <100%> (ø)

pkg/proxy/geoip.go
84.21% <100%> (-7.1%)
:arrow_down:

pkg/checker/score.go
91.3% <100%> (ø)
:arrow_up:

pkg/utils/http.go
66.66% <50%> (-0.99%)
:arrow_down:

pkg/storage/memory.go
91.02% <91.02%> (ø)

Continue to review full report at Codecov.

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


Mechanism to attach additional metadata

Problem
For interactive applications when using the contrib.elements there needs to be a mechanism to connect the Element back to some other data structures.
Proposed
Adding a metadata dictionary field onto the BaseElement class for users to attach data useful outside the layouter logic.

Addressed in #88.


[SC] Recommit reverted changes

Hey @rowandh @codingupastorm, so something went very wrong with our revert the other day, which caused 4 commits to FN master to be merged out of sc-dev. I had to some serious re-basing work to get the stuff back.
Can you guys please review this for any SC changes and make sure that I haven't merged something out again (there shouldn't be).
If all good please approve and merge into sc-dev.

@codingupastorm OK I'm going to investigate this now this morning. I suspect it got to do with the changes Dan made to consensus rules.

All unit and integration tests now pass 👍


CamVid dataset

Hi, I am interested in adding CamVid Dataset for Image Segmentation.
The Repository hosting the dataset is here- https://github.com/alexgkendall/SegNet-Tutorial/tree/master/CamVid
cc @pmeier

if you have created a DataLoader for it, please send a Pull Request. Thank you

Hey @souravsingh, as of torchvision==0.4.0 we support video datasets. Right now we provide UCF101, HMDB51, and Kinetics400.
One could make a case that CamVid is a segmentation task while ours are classification only. While CamVid is not unpopular, it is not as high profile as the built-in ones. We are currently in the process of hashing out criteria for when it is justified to add a new dataset. @fmassa Do we want a video segmentation dataset?


sessionCheckEventListener wrong origin http://localhost:4300 expected https://localhost:5000 event

I Start the 'Jp.UI.SSO' and 'Jp.api.Management' and the clients http://localhost:4200,http://localhost:4300 in dev environment.
Use google chrome. When I login and get /accounts/profile or  'authorize' cann't get the user profile. and coundn't get the user context.  please find some one can give me support .
OAuthSuccessEvent {type: "user_profile_loaded", info: null} 	1. info: null 	2. type: "user_profile_loaded" __proto__: OAuthEvent
thanks.

Did you ever fix this?

If you are running the entire environment try SSO instead. It's working.


Ignore individual clang-tidy checks

I am using "custom checks", and I am trying to enable whole sets of the checks and then opt out of individual checks within that set.
Here is an example of a use case:
cppcoreguidelines-*; misc-*; -cppcoreguidelines-avoid-magic-numbers; -misc-non-private-member-variables-in-classes;
Although unfortunately cppcoreguidelines-avoid-magic-numbers and misc-non-private-member-variables-in-classes are still being reported when I run clang-tidy through Power Tools.
Am I doing something wrong?
Is this feature possible (if it isn't already implemented)?

Hi @s7jones,
Try to update to latest release Clang Power Tools v2023.6.0
Do you have the same problem?
Kind regards,
Marina


css rule bug ? when background-image = about:blank

in my css file , i write body background-image =  about:blank,
i notice css-load call method processNode in file processCss.js,
and processNode call isUrlRequest in loader-utils module,
bug about:blank is not a file , u can not read it,
so it is a bug? or can i do something to fix my problem? 3Q

by the way, i try to rewrite isUrlRequest,
return false if url param = about:blank,
and every it works for me, everything is ok,
so it is a loader-utils bug ?

why would you use about: blank as a background image, that is no image nor a valid url.

@timse
there is a jquery plugin, such as layui dialog, for IE6 fixed position, u can see css file,
https://github.com/sentsin/layer/blob/master/build/skin/default/layer.css
so i don't care IE6, but this plugin notice IE6 users
maybe u can see this for why set css rule about:blank
http://www.cnblogs.com/slowsoul/archive/2013/05/31/3110135.html

fair enough, maybe ask the author of that plugin that its time to drop ie6 support :)?

@timse
maybe i don't think it's fair enough...
i think loader-utils(css-loader uses loader-utils) does not consider this situation,
not for IE6, even i write css rule just for fun, error occurs
div {background-image: ('about:blank')};
i think: u can't control developers, u can help them fix errors,
and in this case, the loader-utils just confuses them

@timse
forget me for my pool english

@luqingxuan Please provide your fix as PR, so we can discuss it better 😛 , otherwise this hasn't any priority atm

@luqingxuan no worries about your english mine is not as good as I wanted it to be either :)


Layout vertical alignment

md-align layout property not have a middle, bottom or top alignment.
How can I center a element  in "center middle" position?
I tried to do something like this
<md-layout class="view" md-align="center" md-column md-gutter>
    <md-layout md-flex="50"></md-layout>
    <md-layout md-align="center" md-row md-gutter>
        <md-spinner md-indeterminate></md-spinner>
    </md-layout>
    <md-layout md-flex="50"></md-layout>
</md-layout>

but that's not elegant.

This feature has already been implemented in the develop branch via PR #562.

@d3radicated Appreciate it -- is there a timeline for getting this into an actual release, or is the best thing to just use develop right now?

@ryanpager i think yes, but you need to recompile develop

@Samuell1 Thanks, I just ripped out what I needed and put it into a css attribute system instead -- will hold me over til this gets into a release. Cheers.


Fix view composing event

This PR fixes view composing events.
It seems that this edge-case broke with https://github.com/rcrowe/TwigBridge/pull/394
When listing like:
View::composer('layouts/partials/navigation', function ($view) {
    $view->with('categories', Category::ordered()->get());
});

This listens to composing: layouts.partials.navigation in Laravel. However, the current implementation triggers the event like: composing: layouts/partials/navigation. (slashes instead of dots).
When Twig 3.0 was merged, this was rewritten to maintain backwards compatibility with Twig 2, but the viewName isn't normalized in that event. Previously this was done in the custom Template class, but that was removed: https://github.com/rcrowe/TwigBridge/pull/394/files#diff-75946f0ecb9ab2b94b760306ef0b2d4bd4c768b4e2db5e764e0cfa8f09f9f4abL77
This PR adds the same normalization as before.
It can be seen as a breaking change, so perhaps good to release 0.14.0

@barryvdh could you perhaps take a look at this PR and if merged, release a new version for it? Cheers!

OMG LOL I just created this exact PR in #424 because I couldn't find an issue =) I didn't search in PRs... EXACT SAME diff! Great minds.

@barryvdh could you tag a release with this fix? Thanks!

Done, tagged 0.14.0


How to access 2D or Multidimensional Arrays?

Hello, does pyads support accessing a 2D array directly? I didn't see anything in the documentation. Thanks!

I know you can read an array of an array
plc.read_by_name('GVL.sample_array[0][0]', pyads.PLCTYPE_INT)

you could try the following for multidimensional arrays:
plc.read_by_name('GVL.sample_array[0,0]', pyads.PLCTYPE_INT)

Let me know how you get on

Tested works:
Declaration ST:
test3dArray : ARRAY [1..5, 1..5, 1..5] OF REAL;
Simple Access:
value = plc.read_by_name('Main.test3dArray[1,1,1]', pyads.PLCTYPE_REAL)
General Implementation:
#works for arrays of any number dimensions
def readArray(moduleName, variableName, *arrayDimensions ):
asset = moduleName + '.' + variableName
asset += '[' + ",".join(str(dimension) for dimension in arrayDimensions) + ']'
return plc.read_by_name(asset, pyads.PLCTYPE_REAL)
#test readArray
value = readArray("Main", "test3dArray" , 1,1,1)

The above code works, but only for a single element, and is very slow when writing large arrays, since each write requires a unique query to the network. The faster way to transfer a large array to/from is to do the entire thing in one query. Below is how to accomplish this.
in MAIN POU on PLC:
VAR
	testArray : ARRAY [1..10,1..10, 1..10] OF REAL;
END_VAR

in PLC Python:
import numpy as np
plc = pyads.Connection('<IP_ADDRESS>.1.1', pyads.PORT_TC3PLC1)
plc.open()

array = np.linspace(0,10*10*10 - 1,10*10*10).reshape((10,10,10)) #generate 10x10x10 array in format of [1,2,3,...,999]
plc.write_by_name('Main.testArray', array.flatten(), pyads.PLCTYPE_REAL * 1000)

loopback = plc.read_by_name('Main.testArray', pyads.PLCTYPE_REAL * 1000)
loopback = np.reshape(loopback, (10,10,10))
print(loopback)

If y'all want to update the documentation go ahead. Thanks.


Reword/consistency, do not use wallhack term anymore.

Nothing to change regarding configuration nor code, we are already using EFT.Trainer.Features.Players in the trainer.ini file.

@clevebitr if you can have a look at FeaturePlayersDescription, I'm not sure how to change the wording. For FeaturePlayersName I used 球员

Is there no description change needed for zh-cn?

zh-CN 不需要更改描述吗？

If you want to try to avoid using" wallhack" With words like this, you can Delete  "透视" , the description, which I think is the same as the new description in English


Scalability - Mongo clients analysis for using cluster

It is necessary to make changes to the perseo-fe modules so it can support a mongo cluster


Generalize _cleanRelayoutSubtreeRootChildren into visitChildren

This generalization will let us implement other alogorithims that need to walk
the RenderObject tree.

lgtm


ES6 Promises

Pre-review by @gzm0 and @nicolasstucki
I would love suggestions on how to test this. I tried mocking Promise, but by the time the tests install the mock, QueueExecutionContext has already instantiated its resolvedUnitPromise, and therefore the mock is ignored.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2820/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3631/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2821/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3633/
Test PASSed.

LGTM actually.  Certainly an improvement from scala-js-dom's implementation.  Thenable is an interesting addition.
The only 'issue' with compatibility with dom I can see is that in that library, Promise signatures adopt Scala's andThen and recover naming, but I've never been particularly keen on that anyway.  Other than that- it's mostly a drop in replacement with slightly tighter typing in certain situations.

I would love suggestions on how to test this.

I think there is a reasonable case to be made that we would want an execution context to capture the current "implementation". That means we need a factory method (and of course a default).
Maybe we should adapt the interface, and allow to create a new JSQueueExecutionContext that captures the current implementation of Promise / setTimeout at usage site. Then the mocking would actually work properly. It would also be useful for people that use mechanisms that modify these parts of the JS runtime system.

Yep, we could do that.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2827/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3641/
Test FAILed.

Updated with an additional commit allowing more control over QueueExecutionContexts, and then more tests.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2828/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3642/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2831/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3646/
Test FAILed.

Updated. I addressed the magical Future[Thenable[A]].toJSPromise case, and I added decent tests.

Note that "Nicer implementation ..."

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2833/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3648/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2834/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3649/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2835/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3650/
Test PASSed.

Rebased, rearranged commits in a meaningful way. Now ready for a real review.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2837/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3653/
Test PASSed.

That's all. I haven't validated this with the ES6 spec. The implementation just seems reasonable. Please let me know if you want me to validate with the spec.

Updated.

Please let me know if you want me to validate with the spec.

Only if you want more hair pulling :-p I don't think that's necessary.

LGTM

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/2838/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/3655/
Test PASSed.

Ping @nicolasstucki ?

LGTM


Rich text upload > collection > field marked as required but not actually required

Bug Report
Consider the following block:
import type {Block} from 'payload/types';
const RichTextBlock: Block = {
	slug        : 'RichText', // required
	imageURL    : 'https://google.com/path/to/image.jpg',
	imageAltText: 'A nice thumbnail image to show what this block looks like',
	fields      : [ // required
		{
			name        : 'content', // required
			type        : 'richText', // required
			defaultValue: [{
				children: [{text: 'Here is some default content for this field'}],
			}],
			required    : true,
			admin       : {
				elements  : [
					'h2',
					'h3',
					'h4',
					'link',
					'upload',
				],
				leaves    : [
					"bold",
					"italic",
					"underline",
					"strikethrough",
					"code",
				],
				hideGutter: true,
				upload    : {
					collections: {
						media: {
							fields: [{
								name     : 'alt',
								label    : 'Alt text',
								type     : 'text',
								minLength: 25,
								maxLength: 255,
								required : true,
							},],
						},
					},
				},
			}
		}
	]
};

export default RichTextBlock;

Expected Behavior
the alt field should be required
Current Behavior
The alt field does not even show when adding media. Only if you click edit.

Thanks for reporting this @ciokan. We agree that it would be ideal to validate the nested rich text upload fields on the parent document save. We definitely want to improve this workflow. We'll file this under a feature enhancement for now and get back to this as soon as possible.


Remove direction

direction is reverted in #3569
After merging #3652, this code will be enabled.
related to #3425

LGTM!

I think it's better to fix #3713 directly than backporting this.


TensorFlow 2.0 doesn't detect the GPU when rerunning the same program

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): /
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: /
TensorFlow installed from (source or binary): /
TensorFlow version (use command below): tensorflow-gpu==2.0.0
Python version: 3.6.8
Bazel version (if compiling from source): /
GCC/Compiler version (if compiling from source): /
CUDA/cuDNN version: 10.0
GPU model and memory: GeForce RTX 2080 Ti, ~11GB

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
When running a tensorflow program for the first time (in a fresh docker instance) it detects the GPU as expected. When running the same program again (after stopping the previous run) it doesn't detect any GPU devices.
This works as expected in tensorflow-gpu==2.0.0rc1 however.
Describe the expected behavior
Tensorflow should always detect all attached GPUs, even on subsequent runs.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
import tensorflow as tf
(train_images, train_labels), (_, _) = tf.keras.datasets.mnist.load_data()
train_images = train_images.reshape(train_images.shape[0], 28, 28, 1).astype('float32')
train_images = (train_images - 127.5) / 127.5
train_dataset = tf.data.Dataset.from_tensor_slices(train_images).shuffle(100).batch(32)
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
Devices detected by tensorflow on the first run:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation:<PHONE_NUMBER>587076928
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit:<PHONE_NUMBER>4
locality {
}
incarnation:<PHONE_NUMBER>284859902
physical_device_desc: "device: XLA_CPU device"
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit:<PHONE_NUMBER>4
locality {
}
incarnation:<PHONE_NUMBER>022885217
physical_device_desc: "device: XLA_GPU device"
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit:<PHONE_NUMBER>2
locality {
  bus_id: 1
  links {
  }
}
incarnation:<PHONE_NUMBER>05723598
physical_device_desc: "device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:0b:00.0, compute capability: 7.5"
]

Devices detected by tensorflow on the second run:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation:<PHONE_NUMBER>7335455513
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit:<PHONE_NUMBER>4
locality {
}
incarnation:<PHONE_NUMBER>119595332
physical_device_desc: "device: XLA_CPU device"
]

Update:
it works as expected when installing tensorflow-gpu==2.0.0rc1 and also tensorflow-gpu==2.0.0. It doesn't work with tensorflow-gpu (without the version specification).
This might be related to this previous issue where pip install tensorflow-gpu installed the tensorflow cpu version as well which messed something up.

@schmidtdominik
I tried with installing !pip install tensorflow-gpu on colab it works as expected.Please, find the gist here.
Can we close this issue since it looks like it is resolved. Please, let us know if i am mistaken. Thanks!

I originally ran it in a Jupyter notebook in a nightly-gpu-py3 docker instance
But now I'm having difficulty to reproduce it so I guess it's resolved, thanks

Update:
it works as expected when installing tensorflow-gpu==2.0.0rc1 and also tensorflow-gpu==2.0.0. It doesn't work with tensorflow-gpu (without the version specification).
This might be related to this previous issue where pip install tensorflow-gpu installed the tensorflow cpu version as well which messed something up.

Update:
it works as expected when installing tensorflow-gpu==2.0.0rc1 and also tensorflow-gpu==2.0.0. It doesn't work with tensorflow-gpu (without the version specification).
This might be related to this previous issue where pip install tensorflow-gpu installed the tensorflow cpu version as well which messed something up.

Confirmed as working. I've been trying different solutions. But, this one worked. Thank you.

pip install tf-nightly-gpu work for me


Customise countdown using resize

With Issue #7 taken care of, we can now work at the policy level, working on zoom_on_approach()

For two rows, small icons could be bigger to fill the width.
At first we could have 3 rows.
For 14 day uposatha we can limit the columns to 7 to line things up.

As mentioned in #7, the smallest icons could be larger.

I deleted the tests in test_countdown_resize.py since they were hard coded with icon sizes. We need new tests.

With 3 rows, the icon size is a tad to big vertically and pushes the details line to far.
We need tests.

For fifteen day:

Start with three rows. max_columns is 5 and icon_size is smallest.
At 10 icons drop to 2 rows. max_columns is 8 and icon_size is small.
At 6 icons drop to 1 row. max_columns is unchanged and icon_size is medium.
At 3 icons icon_size is large.

For fourteen day:

Start with two rows. max_columns is 7 and icon_size is small.
At 6 icons drop to 1 row. max_columns is unchanged and icon_size is medium.
At 3 icons icon_size is large.

Today's plan is to create a class that does the following:

Accepts a fourteen day flag in it's constructor.
Implements __setitem__ accepting a tuple with an number-of-icons range and an Appearance instance.
Implements __getitem__ taking the number of icons and returning the Appearance.
Allows all() to be called on it to determine whether all slots are filled.

That all works nicely. A nice flourish would be to accept a single value in __setitem__

We should also check out of range values and overlapping values.

Error handling is pretty good now.

Next step:
Replace the resizer and fourteen_day parameters from Countdown's constructor with a IconCountMapping[Appearance] object.

And were done!


Invalid package, won't update

Hi, since released version 359 for main app, this newer add on version 1.2 will not install/update. Running Android 14 on a Samsung S21+.
App asks to update addon or open shizuku. Any suggestions on how I can provide more feedback for this problem?

@zacharee  Looks like you left:
android:testOnly="true"
in AndroidManifest.xml so it is seeing it as a test package.
@jairjacom You can get it to install with the test package flag still if you add on to the usual "adb install --bypass-low-target-sdk-block" command currently needed to install on Android 14 bypassing the low SDK version by adding in "-t" as a argument to "adb install".. So, the command would be like this:
adb install -t --bypass-low-target-sdk-block app-release.apk

The test flag is intentional. See the readme.

Thanks, I'm not to savvy for what you explained. I was hoping a regular installation. I will try to do what you say.

I tried with the install with option app and it went thru install fine. The part I'm stuck is with the additional adb command. So I can't use the app yet.

You only need Install with Options or ADB, not both.
Zachary Wander
Website | GitHub | Mastodon | LinkedIn
On Feb 4, 2024, 11:53 AM -0500, jairjacom @.***>, wrote:

I tried with the install with option app and it went thru install fine. The part I'm stuck is with the additional adb command. So I can't use the app yet.
—
Reply to this email directly, view it on GitHub or unsubscribe.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOS or Android.

I may be doing something wrong 🤷♂

Enable the "Replace Existing" as well. I've updated the instructions to include that.

Ok, that worked. Although when I try to make a change the app keeps giving me the blue screen above.

SystemUI Tuner 360 and Add-On 1.3 should be more stable.
https://github.com/zacharee/Tweaker/releases/tag/360

Apologies for beating a dead horse here, but I'm getting this:
"tk.zwander.systemuituner.systemsettings: INSTALL_FAILED_DUPLICATE_PERMISSION: Package tk.zwander.systemuituner.systemsettings attempting to redeclare permission com.zacharee1.systemuituner.permission.WRITE_SETTINGS already owned by com.zacharee1.systemuituner"
Which is fine I guess if it's already set... shizuku is good as always too. I'm still getting the blue screen as pictured a few posts above. I'm going to take a wild guess here and predict it's because I'm using a Samsung S22 upgraded to the latest enforcement policies and revocations possible. I haven't tried adb install yet only because I feel it would be a waste of time just to get an error. Not sure where to go from here since system shell won't work and dirty pipe is out of the question now too. Toss this phone in the garbage soon? 🤣


[spi_device,dv] stress_all test is flaky

Description
This issue captures the post-milestone effort required to bring this test up to the 90% passing threshold.
Some flakiness is due to the effect of cdc_instrumentation on the dv environment. https://github.com/lowRISC/opentitan/issues/18854 was previously used to track the effort of coming back to previous stability, closing that issue in favor of this more-targeted issue.
Also close https://github.com/lowRISC/opentitan/issues/18364, as the remaining effort should now be captured against a different milestone.

Spoke with @antmarzam yesterday - believe that this should be a V3 issue, so consider moving to M7.
@moidx / @vogelpi

The current regressions no longer have this test failure.


schema: Fix MAC address pattern

Infiniband MAC addresses have the following format:
80:00:02:08:FE:80:00:00:00:00:00:00:F4:52:14:03:00:61:AA:91
This patch change the schema "mac-address" pattern in order to match
this format too.
Signed-off-by: Fernando Fernandez Mancera<EMAIL_ADDRESS>

Can you explain why 40 hex chars is enough for IB? (any IB standard specification or linux kernel code confirmed it?)
In linux kernel the MAX_ADDR_LEN is 32 char/u8, so I think change the schema to support 64 hex chars is better.

Can you explain why 40 hex chars is enough for IB? (any IB standard specification or linux kernel code confirmed it?)
In linux kernel the MAX_ADDR_LEN is 32 char/u8, so I think change the schema to support 64 hex chars is better.

You are right, maximum MAX_ADDR_LEN is 32 char/u8 so.. fixed! Now the schema supports 64 hex chars. Thanks!

Coverage remained the same at ?% when pulling 1b2894fc712d88e6edf482adbef5952abed244f5 on ffmancera:mac_pattern into 3978a1c74e5614b5bae37f0c8ba1cfc5a0758c45 on nmstate:master.


[Feature Request] Add in settings an option to pick Intel or M processor

I searched and found Kid3 (and a few other apps) BUT I couldn't install them because they were the Intel versions and not the AMD versions for the M processor line.  It would be nice if there was a setting where you could pick the processor and it would download the correct one.

Applite uses Homebrew as its backend, which is not built by me. I can't change things related to the way things are downloaded. Brew should automatically select the correct binary to download for your chip architecture.


Turning Location services on after timeout

Hi,
I am currently fixing some kinks with the geolocation in an application I am making.
As soon as the application boots, it calls the getCurrentLocation function.
I have noticed that if I open the application with location services disabled, then turn it on a few second after load, or after a TIMEOUT error, later calls of getCurrentLocation function do not work.
Typically I see that when I run the getCurrentLocation function, the GPS icon flashes in the statusbar of the phone, and the success method is executed. However, if a run the getCurrentLocation function after a TIMEOUT, or loading the application with location services off then turning them on later, the GPS icon does not appear and the error method is executed.
Does anyone have a solution to resolve this behavior?
Thanks

What platform?

Sorry, Andoid 8.0.0.
Haven't tested on iOS yet.

Is this consistent on other Android versions as well?
Can it be reproduced in an emulator?

I have reproduced the problem with an older device which is using 5.0.1.
Unfortunately I can't isolate the problem.
I have rebuilt the project several times and the new projects never exhibit the same behavior. Everything between projects is identical, I am not sure why the original project is causing the issue.

(Anecdotally I have read/heard multiple times that geolocation is fishy when the app is started without the permissions and only then added - but afaik nobody was ever able to give a good reproduction case :( )

This issue is frequently occuring for me now, I am not sure why, but now I can't get fix it, here are the steps I take to reproduce it:
cordova create test --id "com.test.test" --name "test"
cd test
cordova plugin add cordova-plugin-geolocation
Delete everything in the init.js and replace with:
document.addEventListener("deviceready",function(){
getGps();
},false);
function getGps(){
navigator.geolocation.getCurrentPosition(gpsSuccess, gpsError,{timeout:5000,maximumAge:10000,enableHighAccuracy:true});
}
function gpsSuccess(position) {
alert('Success');
}
function gpsError(error) {
alert('GPS Error: code: '+error.code+'\n'+'message:'+error.message+'\n');
getGps();
}
cordova platform add android
cordova run android
Turn Location on before running the application, you will see it works.
Exit the application.
Turn Location off.
Re-enter the application.
Wait for the timeout alert.
Turn Location on.
Notice that the application never accesses the location.

Turn Location on.
Notice that the application never accesses the location.

Do you restart the app in between those steps or call getGps manually somehow?

Nah, I don't leave the app. The getGps() is called every time the request times out. So every time you see the error alert, it should run the getGps() function again.
Am I wrong about that?

Ah, I missed the getGPS() in the error handler. Could you upload that project to Github so a developer just has to clone that instead of doing those steps manually?

Sure thing,
https://github.com/Danbardo/cordova_geolocation_bug

is there any update here? i have exactly the same issue in my application.

I've never encountered this issue myself, but considering that we do not actually have any geolocation implementation for android (the plugin just handles declaring capabilities and permissions)... it sounds like an issue with the chrome webview.

Closing as stale.


Update scala-library to 2.13.11

About this PR
📦 Updates org.scala-lang:scala-library from 2.13.10 to 2.13.11
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (2.13.10).
You might want to review and update them manually.
website/docs/commands/compile.md
website/docs/cookbooks/scala-versions.md
website/docs/guides/markdown.md
website/docs/guides/verbosity.md
website/docs/reference/scala-versions.md
website/docs/release_notes.md

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-lang", artifactId = "scala-library" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Suspended by #2223


Something weird with TabModule and TypeaheadModule

Hi,
I have just updated to the latest version (1.1.16-9) which adds the new injector system by @valorkin - thanks man!
My modal box, dropdowns and alert boxes are working perfectly like before. However for some reason i cannot get the Tabs and Typeahead to work.
I have a sharedModule which i call in all the other modules. In my sharemodule i have all the NG2-bootstrap modules loaded which i use.
For some reason i have to include the NG2-bootstrap Tab and Typeahead modules again in my feature modules (even though they are already in sharedmodule). If i dont do that, i get tons of errors in my browser console which basically say that tabs or typeahead are not found.
If i add them to my feature module they work just fine. Any idea why is it different from Modal, Dropdown and Alert modules?

Ah so sorry -- my silly mistake, turns out i forgot to export the modules from my sharedModules
Again false flag, sorry


feat(cli): support all other file format for auto load config

I am polishing this PR changing init.mjs to use functions I refactored in utils.js to find proper config file in directory, then I'll convert to PR
Fixes #20

To summarize the PR

auto config tests are now in their own file. I had to use CJS instead of ESM, so I have created also a cjs helper file for tests.
load-config now handles the logic to find the default config file, if not specified in command argument.
utils.js now contains the function to strip file:/// from import.meta.url that was used by some other tests.

Can you resolve the conflicts?


How can I create a database with provisioned throughput?

I don't see a way to create a database with shared throughput in the new SDK.
public virtual Task<DatabaseResponse> CreateDatabaseIfNotExistsAsync(string id, int? throughput = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default);
RequestOptions doesn't have a property for this purpose. Is it currently possible to create a new database with shared throughput?

@adrianknight89 it's the 2nd parameter. Am I missing something?
public virtual Task CreateDatabaseIfNotExistsAsync(
string id,
int? throughput = null,
RequestOptions requestOptions = null,
CancellationToken cancellationToken = default);

@j82w Please do not close this right away. The second parameter seems to be mapping to the second textbox in the image, but for the checkbox, there needs to be another parameter based on what I observed in my test yesterday. Setting the throughput does not make it shared between containers. I'll test this again today.

@adrianknight89 what makes you think the throughput is not shared?

On the portal, if I create a new database without checking the above checkbox, then I get something like this:

If I check the checkbox, I get this:

When I executed CreateDatabaseIfNotExistsAsync with an explicit throughput, I ended up creating a database that looked like the first one. Every subsequent container then defaulted to 400 throughput because the database did not set a throughput of its own.
Let me verify this one more time tonight.

Can you please make sure DB doesn't exist with database id  using in  CreateDatabaseIfNotExistsAsync.
In that case it will just return the existing Database instance with original setting.
We verified this api and checked on portal with below screen shot, which is correctly showing the option to scale the throughput .

Contract is not very explicit and its tracked as a separate issue #549

Tested this again and it seems to be working. I'm not sure what was happening last night. I think the issue might have been as described in @simplynaveen20's post.


Mizu API server was not ready in time

[root@k8s-master-xxx mizu]# ./mizu tap
Mizu will store up to 200MB of traffic, old traffic will be cleared once the limit is reached.
Tapping pods in namespaces "default"
+kali-roll-df47956b5-5mdtp
+my-cert-manager-cainjector-5955cd77f8-j5g5x
+my-cert-manager-ff65454bf-q547x
+my-cert-manager-webhook-5ff8499f89-jmrrj
+vault-7594bfbc57-vc4fx
Waiting for Mizu Agent to start...
Mizu API server was not ready in time
Removing mizu resources

Hey @andyoulovexy,
Thanks for reaching out.
I want to make sure it is not an issue in the proxy, so i can suggest you do the following:

You can Run the command API_SERVER_RETRIES=100 ./mizu tap --set dump-logs=true (We’ve added the option to extend the retries count in order to give more time to debug the problem)
Try to reach the following url: http://localhost:8899/api/v1/namespaces/mizu/services/mizu-api-server/proxy/, do you see Mizu UI?
Can you try to run kubectl proxy, do you see any errors? Can you navigate now to the proxy served url and get response from k8s? - you should be able to see the "version" endpoint, in my laptop it is in port 8001 by default so I can go to http://<IP_ADDRESS>:8001/version and see k8s version details
Could you please provide us with the zip containing the logs from the run?

Thanks!

Hey @andyoulovexy, Thanks for reaching out.
I want to make sure it is not an issue in the proxy, so i can suggest you do the following:

You can Run the command API_SERVER_RETRIES=100 ./mizu tap --set dump-logs=true (We’ve added the option to extend the retries count in order to give more time to debug the problem)
Try to reach the following url: http://localhost:8899/api/v1/namespaces/mizu/services/mizu-api-server/proxy/, do you see Mizu UI?
Can you try to run kubectl proxy, do you see any errors? Can you navigate now to the proxy served url and get response from k8s? - you should be able to see the "version" endpoint, in my laptop it is in port 8001 by default so I can go to http://<IP_ADDRESS>:8001/version and see k8s version details
Could you please provide us with the zip containing the logs from the run?

Thanks!
mizu_logs_2022_01_10__15_41_04.zip

This is zip,Thanks

Hey, @andyoulovexy
Thanks for your quick reply.
Looks like you're having trouble pulling mizu's image.
The image is publicly accessible on gcr (google container registry).
For the latest stable release, v0.21.0, the image should be gcr.io/up9-docker-hub/mizu/main:0.21.0.
Does your cluster have access to public images and permissions to pull them?
If not, you can download the image and run mizu with --set agent-image= flag, the full command will look similar to:
./mizu tap --set agent-image=.
Thanks!

I had this images,but the same error to me

Hey, @andyoulovexy Thanks for your quick reply.
Looks like you're having trouble pulling mizu's image.
The image is publicly accessible on gcr (google container registry). For the latest stable release, v0.21.0, the image should be gcr.io/up9-docker-hub/mizu/main:0.21.0. Does your cluster have access to public images and permissions to pull them?
If not, you can download the image and run mizu with --set agent-image=<your image location> flag, the full command will look similar to: ./mizu tap --set agent-image=<your image location>.
Thanks!
I had this images,but the same error to me

@andyoulovexy could you please try simply pulling the image to the local computer, so we rule out any network / image download issues ?  If you could run the following:
docker pull gcr.io/up9-docker-hub/mizu/main:0.21.0
Expected output would be something like
$ docker pull gcr.io/up9-docker-hub/mizu/main:0.21.0
0.21.0: Pulling from up9-docker-hub/mizu/main
97518928ae5f: Pull complete
7aab60cfb68a: Pull complete
ecf028e61a18: Pull complete
098fcca86bda: Pull complete
af61399ff2b0: Pull complete
cb60a6f698b7: Pull complete
76eaf4a2f41a: Pull complete
fbf8ce92c82a: Pull complete
Digest: sha256:3420ab5bdf5daa8af7ae922178445a6d0ba79579c511194649b1d116e6142e12
Status: Downloaded newer image for gcr.io/up9-docker-hub/mizu/main:0.21.0
gcr.io/up9-docker-hub/mizu/main:0.21.0
$

@andyoulovexy could you please try simply pulling the image to the local computer, so we rule out any network / image download issues ?
Tapping pods in namespaces "default"
+kali-roll-df47956b5-5mdtp
+my-cert-manager-cainjector-5955cd77f8-j5g5x
+my-cert-manager-ff65454bf-q547x
+my-cert-manager-webhook-5ff8499f89-jmrrj
+vault-7594bfbc57-vc4fx
Waiting for Mizu Agent to start...
Mizu API server was not ready in time
Removing mizu resources

@andyoulovexy could you please try simply pulling the image to the local computer, so we rule out any network / image download issues ?  The problem is that your k8s cluster can't pull the images directly from our container registry at Google Cloud gcr.io/up9-docker-hub/mizu/main:0.21.0. You managed to download and import it the image into docker on the local machine,  but it's still not accessible to the k8s.  If you're running a minikube on your local computer and would like to use images already downloaded to your computer (visible with docker images) - please try the steps described in this post - https://stackoverflow.com/a/42564211
Anyway, we understand the problem now - let us look into this and see if we can offer something else.

OK, I see. The problem is that your k8s cluster can't pull the images directly from our container registry at Google Cloud gcr.io/up9-docker-hub/mizu/main:0.21.0. You managed to download and import it the image into docker on the local machine, but it's still not accessible to the k8s. If you're running a minikube on your local computer and would like to use images already downloaded to your computer (visible with docker images) - please try the steps described in this post - https://stackoverflow.com/a/42564211
Anyway, we understand the problem now - let us look into this and see if we can offer something else.

It had imagepullpolicy?if local machine already had images,i need pull images?

The problem is that you pulled the image into your local machine, but it's still not accessible to the k8s cluster that you're using to run mizu.
Can you please confirm you are using minikube? if so, we will try to offer you a solution for that.

The problem is that you pulled the image into your local machine, but it's still not accessible to the k8s cluster that you're using to run mizu.
Can you please confirm you are using minikube? if so, we will try to offer you a solution for that.

[root@k8s-workerxxx ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.5", GitCommit:"aea7bbadd2fc0cd689de94a54e5b7b758869d691", GitTreeState:"clean", BuildDate:"2021-09-15T21:10:45Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.5", GitCommit:"aea7bbadd2fc0cd689de94a54e5b7b758869d691", GitTreeState:"clean", BuildDate:"2021-09-15T21:04:16Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}

In order for it to work, you will need to save the image in a registry which the cluster can access,
and change --set agent-image=<your image location> flag to this location.

In order for it to work, you will need to save the image in a registry which the cluster can access, and change --set agent-image=<your image location> flag to this location.

I Known,I will push this image to my harbor registry,thanks

OK, I see. The problem is that your k8s cluster can't pull the images directly from our container registry at Google Cloud gcr.io/up9-docker-hub/mizu/main:0.21.0. You managed to download and import it the image into docker on the local machine, but it's still not accessible to the k8s. If you're running a minikube on your local computer and would like to use images already downloaded to your computer (visible with docker images) - please try the steps described in this post - https://stackoverflow.com/a/42564211
Anyway, we understand the problem now - let us look into this and see if we can offer something else.

Thanks. I need push this image to my private registry,then run it.


Cluster DNS apparently needs to be suffixed with a dot (.) in order to search beyond "local" domains

Environmental Info:
K3s Version: k3s version v1.23.6+k3s1 (418c3fa8)
go version go1.17.5

Node(s) CPU architecture, OS, and Version:  Linux 5.4, mostly aarch64 nodes

Cluster Configuration:

Three agents, one server. One x86 agent because I got tired of working around non-support for ARM. Traefik, local storage, and service-lb should all be disabled, though service lb was accidentally enabled for a bit.
Describe the bug:

When making DNS queries, unless the domain to be resolved ends in ., CoreDNS stops after searching "local" domains (e.g. svc.cluster.local and cluster.local). For resolving most external DNS names, e.g. example.com, this results in no answer:
$ k exec -n lounge -i -t dnsutils -- nslookup example.com.
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

Non-authoritative answer:
Name:	example.com
Address: <IP_ADDRESS>

$ k exec -n lounge -i -t dnsutils -- nslookup example.com
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

Non-authoritative answer:
*** Can't find example.com: No answer

Steps To Reproduce:

Installed K3s: INSTALL_K3S_EXEC="server --disable traefix,servicelb,local-storage --disable-cloud-controller" for the server, all default on agents.
Set up a DNS debugging pod
Try to resolve an external DNS name as in above snippet

Expected behavior:

DNS resolves to some record
Actual behavior:

NXDOMAIN unless the request has a dot on the end
Additional context / logs:

This doesn't seem to impact everything equally. For my instance of The Lounge, it means all networks need to have a . on the end - e.g. irc.libera.chat. instead of irc.libera.chat. This shows up even in the UI. For other applications like Synapse, it seems to eventually resolve correctly? CoreDNS logs show Synapse apparently going through each local domain until it eventually just tries no local domain (AAAA requests omitted for brevity):
[INFO] <IP_ADDRESS>:35972 - 62801 "A IN matrix.makcloud.de.synapse.svc.cluster.local. udp 62 false 512" NXDOMAIN qr,aa,rd 155 0.001250061s
[INFO] <IP_ADDRESS>:60995 - 35482 "A IN matrix.makcloud.de.svc.cluster.local. udp 54 false 512" NXDOMAIN qr,aa,rd 147 0.001133025s
[INFO] <IP_ADDRESS>:35097 - 33311 "A IN matrix.makcloud.de.cluster.local. udp 50 false 512" NXDOMAIN qr,aa,rd 143 0.000668659s
[INFO] <IP_ADDRESS>:44687 - 34413 "A IN matrix.makcloud.de.2fort.tta.wtf. udp 50 false 512" NOERROR qr,rd,ra 134 0.002051959s
[INFO] <IP_ADDRESS>:55953 - 32992 "A IN matrix.makcloud.de. udp 36 false 512" NOERROR qr,rd,ra 106 0.001920201s

(matrix.makcloud.de.2fort.tta.wtf giving NOERROR is an issue with local infrastructure - it should be NXDOMAIN, and doesn't resolve to anything, but for some reason the VyOS DNS server says NOERROR.)
Backporting

[ ] Needs backporting to older releases

Hmm. Ok. This is very strange. I had local infrastructure stop sending DHCP Option 015 and... things seem to have cleared up? Bizarre.
(delete service dhcp-server shared-network-name <name> subnet <subnet> domain-name <domain-name>)


404s are reported as 500s

How critical is this? Could this one be pushed to the next milestone? (asking to see if we can prevent increasing the scope of 4.0.0)

We could probably push this off.  It is not impossible this could cause
issues if users are depending on the code in some way but it does seem
unlikely?

Ah got it. Well I guess we'll see. Shooting for Dec. 3rd release. I guess this could be a potential easy/quick fix, right?


Option to stop auto-scroll

Is your feature request related to a problem? Please describe.
When I'm waiting for the full answer to appear I often like to scroll backwards and read the start of the answer.  Currently I cannot scroll back because as soon as I do, the UI scrolls me to the bottom again!
Describe the solution you'd like
Allow me to scroll backwards. Only engage "auto keep to the bottom" mode if I have actually scrolled to the bottom of the page. Alternatively add an option to turn off auto scroll to the bottom.
See ChatGPT for the behaviour I am describing, which ChatGPT has already implemented.

Hi, I'll think of ways to add that as well, Thanks!

Implemented with #48. Keep us in the loop and let us know if it's working as intended for you. Thanks.


Z-Wave integration triggering updates for disabled devices

Home Assistant release with the issue:
0.101.1
Last working Home Assistant release (if known):
N/A
Operating environment (Hass.io/Docker/Windows/etc.):
Hassio
Integration:
Z-Wave
Description of problem:
Z-Wave entities disabled via the UI result in errors in the log.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
N/A
Traceback (if applicable):
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity switch.garage_light is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_alarm_type_2 is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_alarm_level_2 is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_sourcenodeid is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_motion is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_alarm_type is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_alarm_level is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_sourcenodeid_2 is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:22:57 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.garage_switch_motion_2 is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:23:01 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.assa_abloy_yale_key_free_touchscreen_deadbolt_yrd446_alarm_type is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:23:01 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.assa_abloy_yale_key_free_touchscreen_deadbolt_yrd446_alarm_level is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:23:01 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.assa_abloy_yale_key_free_touchscreen_deadbolt_yrd446_sourcenodeid is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:23:01 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.assa_abloy_yale_key_free_touchscreen_deadbolt_yrd446_access_control is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.
2019-10-31 20:23:01 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.assa_abloy_yale_key_free_touchscreen_deadbolt_yrd446_power_management is incorrectly being triggered for updates while it is disabled. This is a bug in the zwave integration.

Additional information:
N/A

I think because when a device is added, async_added_to_hass is called which then calls async_dispatcher_connect which actually returns async_remove_dispatcher. I'd imagine that function is intended to be executed when a entity is disabled, which I believe is what async_will_remove_from_hass is for.

This is a duplicate of #26288.
Please close and move the discussion there :)
Cheers !


Can You Provide Data Preprocessing Code?

Hi!
Great job! Could you please provide code for data preprocessing, so we can easily extend it to new datasets?
Thanks!

Hi,
Thank you for your attention!
We will organize the code of the data preprocessing process.

Hi,
Thank you for your attention!
We will organize the code of the data preprocessing process.


Progress bar lives forever....

When doing a pause immediately iPython prompt is returned but progress bar carries on on terminal until a RE.abort() is executed. (Found by @stuwilkins )
In [37]: RE(pchain(count(dets),ssh_close(),bp.sleep(1),count(dets)))
Transient Scan ID: 83003 @ 2017/09/10 14:54:00
Persistent Unique Scan ID: 'cc339c1e-2919-43b5-8391-206abbbbc8e1'
A 'deferred pause' has been requested. The RunEngine will pause at the next checkpoint. To pause immediately, hit Ctrl+C again in the next 10 seconds.           | 1305/9000 [02:10<12:49, 10.00images/s]
Deferred pause acknowledged. Continuing to checkpoint.
fccd 15%|██████████████████████                                                                                | 1309/9000 [02:10<12:49, 10.00images/s]
Your RunEngine is entering a paused state. These are your options for changing
the state of the RunEngine:

RE.resume()    Resume the plan.
 Mark exit_stats='aborted'.
 Mark exit_status='success'.
RE.halt()      Emergency Stop: Do not perform cleanup --- just stop.

Pausing...
Out[37]: ['cc339c1e-2919-43b5-8391-206abbbbc8e1']

fccd 15%|██████████████████████▍                                                                                | 1330/9000 [02:12<12:46, 10.00images/s]
In [38]:
fccd 15%|██████████████████████▍                                                                                | 1331/9000 [02:13<12:46, 10.00images/s]
In [38]:
fccd 16%|███████████████████████▋                                                                                | 1401/9000 [02:20<12:39, 10.00images/s]
Aborting: running cleanup and marking exit_status as 'abort'...

In [39]:

This is not something we can fix. If a user hits enter or something we don't control prints to the screen, a relic progress bar will be left behind.

I think this was referring to not being able to cntrl c right away. We had to wait until the counter got to 100%
You gave us a temporary solution and said we would have to wait for a later version to get the prompt to auto appear


Add Texas A&M University - Central Texas

Domain is @my.tamuct.edu

@packrat888 First stage of verification passed, official domain for Texas A&M University - Central Texas is tamuct.edu as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@packrat888 Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


Elasticache: replication group large cluster test and support for skipping slow tests by default

Description of changes:

large cluster load test
add support for a pytest.mark.slow marker, and skip these tests by default (we don't want tests like this to run with the rest of the tests)

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

Ok, removed any "load test" wording (including in the commit message)


Add log module

It would be nice to have a leveled log library.  For the first version we could probably use something simple such as:
https://github.com/rust-lang-nursery/log
Or we could add something more flexible:
https://github.com/sfackler/log4rs
The log crate is configured via an environment variable, and would give us basic logging to STDOUT with the ability to specify level on a per-module basis.  This is probably sufficient initially.

I would vote for the first simple solution. Since we'll have metrics, I would keep the logging simple. In unix environments syslog as a destination would be usable feature too. But this should be possible with the first solution.
I would also like to give some input on log-levels: http://dave.cheney.net/2015/11/05/lets-talk-about-logging

I'll go ahead and add the first one.


kserve - initial additions, serving runtimes

@terrytangyuan please take a look, I've changed it a little bit, if that sounds good, we can add the vllm example later


404 error for https://stimulusjs.org/reference/controllers/ page

Hi
I don't know if this is the right place to report this but there is a 404 error for references page

GitHub seems to have made a configuration change that broke all of our URLs. I’ve contacted support; it looks like we’re not alone.
In the meantime, you can access the documentation at https://stimulusjs.now.sh/ or view the Markdown source at https://github.com/stimulusjs/stimulus/tree/master/docs.

Those links are working again:
https://twitter.com/githubstatus/status/1129104279380398080
Thanks for letting us know!

Great thank you @sstephenson


Question on Beaglebone pocket project

We tried to duplicate your pocket Hardware.
Our produced board:
When power is connected, only one LED comes up
Original Pocket Beagle:
When power is connected, only one LED comes up and then other 4 LEDs are up sequencially.
Should we fuse ROM? or EEPROM? to boot it up?
and how to?
Can you share the link if there is any guide for it?

You will need the "flasher" image to program the EEPROM and a shunt to enable writing.
https://beagleboard.org/latest-images
Check issue resolved issue #3 here: https://github.com/beagleboard/pocketbeagle/issues/3

Another route would be to modify the bootloader such that it doesn't rely on the EEPROM to boot.

Can I know what Another route is ? (Physical connection or jumper ?)

It is a purely firmware route. The standard Beagleboard U-Boot uses the EEPROM to determine the board type. You can disable this detection and boot whatever you want. This off course requires some firmware chops and understanding of U-Boot.

The "flasher" image will boot the board without the EEPROM program as it has a hack in the bootloader already to fall back to defaults for booting the pocketbeagle.

I had tried original flash image fused tf card chip, still not booting up. So for beagle newbie, it is recommendable to fuse eeprom?

Please tell me how to flash to EEPROM.

You need to boot the flasher image in order to program the EEPROM.
If you have access to the debug UART check if you have output there.

U-Boot SPL 2019.04-00003-g2bf638a03e (Mar 06 2020 - 11:25:08 -0600)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **
** Unable to read "/boot/uboot.env" from mmc0:1 **
U-Boot 2019.04-00003-g2bf638a03e (Mar 06 2020 - 11:25:08 -0600), Build: jenkins-github_Bootloader-Builder-137
CPU  : AM335X-GP rev 2.1
I2C:   ready
DRAM:  512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Global warm SW reset has occurred.
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4... ** File not found /boot/uboot.env **
** Unable to read "/boot/uboot.env" from mmc0:1 **
 not set. Validating first E-fuse MAC
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55:
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net:   usb_ether
Press SPACE to abort autoboot in 2 seconds`
I am getting this error.

Another question from earlier answer:
It is a purely firmware route. The standard Beagleboard U-Boot uses the EEPROM to determine the board type. You can disable this detection and boot whatever you want. This off course requires some firmware chops and understanding of U-Boot.
==> 1. Can you share the link how to disable detection?
==> 2. How to boot with SD card?

There are some pointers here:
https://octavosystems.com/app_notes/osd335x-eeprom-during-boot/

You are booting SD if you have U-Boot coming up.
Remember you have to GND the WP pin which writing to EEPROM.

Thank you.
Solved.

I can't find the WP pin of the Beagle Board Black wireless and Beagle Board AI.
Is there anything I have to do to write the EEPROM?

The BBBW has an external EEPROM and WP test pad for pulling it to ground.

The BBAI is special creature using the newer AM5728/9. I don't think has an EEPROM.

I had duplicated beagle pocket board and 1 board is working fine with your suggestion(WP to GND) while other 4 boards does not come up.
in pocket beagle EMU0 (MISC EMULATION PIN) is not going up to 3.3V while normal board goes up to 3.3V.
What might cause this issue?
Any suggestion?


Fixed Classification Endpoints

Description
The Classifications endpoints described in the guides seem to be wrong.
Checklist

[x] I have reviewed and signed the Adobe Open Source CLA.
[x] I have read and agree to the CONTRIBUTING document.

Thanks very much for your contribution!

Thanks @goodintheory for your PR. Sorry I did not see it earlier. Also, please feel free to log an issue on the repo with your PR if you like in the future. We have a lot of PRs on this repo. Also, thanks @fajitamondays for logging this issue.


Intersection between watertight mesh and plane mesh

I am using cut_with_mesh to obtain the part of a plane mesh that is inside another mesh. What I am using now:
mesh = trimesh2vedo(plane_mesh).cut_with_mesh(trimesh2vedo(mesh))

It looks like this:

Right now it is crashing silently and I do not know why. I am using the right function to do this?

I have also tested cut_with_box and it does not work either. Could it be due to the mesh not interseting in all sides with the bounding box?

It could be! but I cannot tell, you are not giving me enough information.. :)
Syntax looks ok though.

Sorry, you are right, I have made a drawing to make it clearer:

I have the mesh of a plane, and I want to get the area of the part that is inside the box in the drawing (A). plane_mesh is the plane, and mesh is the mesh of the box. I have tested both meshes inside vedo, and the render looks ok. I have also tested  cut_with_box with mesh coverted to a vedo Box.
The cut always is empty, not sure why.
I hope that now it is clearer, sorry for the drawing skills.

No worries! This seems to work though
from vedo import Cube, Plane, show, settings

settings.use_parallel_projection = True

cube = Cube().rotate_z(10).alpha(0.5)
plane = Plane().scale(0.5).rotate_x(5).shift(dx=0.6)
# cube.subdivide(3, method=1)
# plane.subdivide(3, method=1)

cut_plane = plane.clone().cut_with_mesh(cube).shift(dz=0.01)
cut_plane.c("red5")

show(cube, plane, cut_plane, axes=1)

Note that this doesn´t work if some edges are exactly coincident as then the inside/outside becomes ambiguous.

That may be the problem, the front and back edges are common. The rest should not match. Here is the full code of one of the failing cases:
      from vedo import Cube, Mesh, show

      box = Box(pos=[0.00073, 0.00279, 0.03353, 0.03529, 0.0, 0.07])

      face_mesh = Mesh([[0.00041, 0.035  , 0.0],
                                  [0.00104, 0.03498, 0.0],
                                  [0.00104, 0.03498, 0.07]], [[2, 1, 0]])

      cut = face_mesh.clone().cut_with_box(box)
      cut.c("red5")

      show(cube, plane, cut_plane

It's weird because when it is fully inside it works:

that might be a problem of precision (?)

from vedo import *

box = Box(pos=[0.00073, 0.00279, 0.03353, 0.03529, 0.0, 0.07])

face_mesh = Mesh(
    [[
     [0.00041, 0.035, 0.0],
     [0.00104, 0.03498, 0.0],
     [0.00104, 0.03498, 0.07]
     ],
    [[2, 1, 0]]]
)

face_mesh.subdivide(3, method=1)
box.subdivide(3, method=1)
box.alpha(0.5).lighting('off')

cut = face_mesh.clone().cut_with_box(box)
cut.c("red5")

show(box, cut)

It looks like indeed it was a matter of precision. Subdividing the meshes results look correct. Thank you very much for the help.