WIP extend gitolite module to allow declarative configuration.

I wanted to configure gitolite without the gitolite-admin repo.
Maybe this could break some old installations, but for me everything worked fine.
The only attribute that got changed is commonHooks which didn't work anyway (files couldn't be created, hooks had names with hashes, which made it hard to reference them in scripts/other hooks/etc).
feedback is appreciated.

Feedback:
I'd appreciate a better commit message for this change. "extend gitolite module" is as good as "fixes" is. Please describe what you've done and why.
Also, please integrate an appropriate (working) example of how to use this module. Would be really nice to know how to use this properly, as the code is rather complex IMHO.
Maybe add the example as second commit, if the other guys don't mind.
Anyways, I think this is a great idea!

Question: What will happen if you remove a repo from your configuration.nix - will it be removed? If yes, there should be a way to prevent this from happening, as this could cause data loss in a really bad way!

If you remove a repo from your nix-config it just gets removed in the gitolite.conf. The data is still in the dataDir but cant be accessed.

The data is still in the dataDir

:+1:

I changed all the type.path to either path or string. So you can now specify most of the new values via a string or a path.

this is my current configuration for gitolite which i import from my configuration.nix .
It is configured with irc-announce hook, which gets executed when a gitolite repos send changes upstream. The Hook basically just writes the changes to the configured irc-channel.
https://gist.github.com/Lassulus/f718cf8aa9f0ba504777#file-gitolite-config-nix

@Lassulus Is this still WIP? I'd test it on one of my machines if you want me to (though I have not much time at all atm).

yeah, its still WIP, currently im working on a new iptables module to configure my hosts, so this is somehow postponed.
If you want you can test it, it should be working as intended and I would be happy to fix any new bug.

I want to.
I'm a bit unsure: I normally have my gitolite-admin key which is aliased to @m in my configuration, so I can add
repo foo
    @m = RW+

How to replicate this?

well, the gitolite-admin key is just used for initialization of the gitolite-admin repo and because I do not use it if mutables = false, it would be unnecessary to define.
But of course you can define your repos in the following way by specifying your gitolite-admin key in nix.
services.gitolite = {
  mutable = false;
  keys = {
    myAdminKey = "ssh-rsa AAAA...== testuser@somepc";
  };
  repos = {
    foo = {
      myAdminKey = "RW+";
    };
  };
}

Its only important, that the key and the user, in the repos attribute set, are defined by the same attribute name.

It seems to work for me.

as i am not using gitolite anymore this will never finish.


missing line in minimalPkg.c

the line
ret = sysinfo(&info);
is missing in minimalPkg.c
why "EXEC= minimalPkg_2 in Makefile ???
should not be EXEC= minimalPkg    ???

Thanks for your reply.
We will add ret = sysinfo(&info); into minimalPkg.c. Sorry for make this mistake.
In pkgscripts framework, we can cross-compile source code by

Makefile + include /env.mak
SynoBuildConf/build
We need to demonstrate above two scripts in minimalPkg. In build script SynoBuildConf/build, we compile the minimalPkg first and then execute command make ${MAKE_FLAG}. If Makefile still uses minimalPkg as executable name, make ${MAKE_FLAG} will not really compile the binary.  So we change the example executable name to minimalPkg_2 so that make ${MAKE_FLAG} will use the cross-compiler to compile the source.

In order to avoid other user confusing the executable name, we will adjust executable name and add the comment before it.

Thanks, but who to contact to update the developer guide ?

Thanks for your reply.
We will update the developer guide later.


Easy Pin Swap using an Overwrite

Is your feature request related to a problem? Please describe.
Whenever I want to swap a configuration's pins I have to:

Change both pins to an open pin
Flash the Arduino
Change both pins to the desired pin
Flash Arduino
Check Result
(Sometimes the software disregards the swap/I did it wrong, so I have to repeat it)

Describe the solution you'd like
I'd like to be able to insert a pin manually (not shown from the dropdown), then MobiFlight say "This pin is already in use, would you like to overwrite it?"
You'd press yes to erase the old pin, or no to cancel.
Describe alternatives you've considered
I've considered also deleting the device and re-configuring it but this causes down the line problems.
Additional context
None. Have a fantabulous day!!

An idea on a possible solution: allow the entry of pins with (some) "illegal" parameters, leaving them marked as incorrect, but do not account for them when generating the configuration.
They can be modified again later with the correct parameters without deleting/reinserting them.
(Even a "swap pins" button would do for the specific issue, but this solution would allow for more elaborate changes.)

Two things:

You dont need to flash. While this is not a lot better, you can select "wrong" pins, select another pin config, and select the one you are editing again, now it has "freed" the pins and you can swap them.
Just open the .mfmc in a text editor and swap them, and open & flash the config again.

Overwriting pins would mean the overwritten pin would need to be assigned to a new number on the affected configuration item. It would need to either show some flag as "this is not complete", or just swap to another free pin randomly (or ask for a pin to change to) but it might just make things very complicated.

i think a swap pins button is helpful for encoders, if you find your encoder is turning wrong direction.
For devices like 7 segment displays it would not make sense to swap pins because you would have to swap through all permutations.
I have to think about it

Chatting about it in discord. I understand that a work around is to change the pins to a free pin and then select another "device". Whatever this process is, "saves" the config to the free pins. You can then go back to the "device" you are changing and select the pins with the originals being available again.
My non programmer thought is that whatever you are doing programmatically to "save" the pin config when you move between devices, could be instead applied to an "apply button". This would then allow you to simply click apply which would save the current pins, refresh the pull down menu, freeing the original pins. This would then fix the problem for all device types, not just encoders.
Hope the makes sense.
Andrew (SirLemonaids)

Please also consider that if your configuration uses all pins in the arduino, one cannot simply assign a free pin.  You would have to delete a device in order to free those pins just to be able to swap.  I kind of like the solution that allows you to assign pins manually (already used) but flags which configurations have duplicate pin assignment when trying to save and exit.


dfuse-io logging module update to new URL

Since the module github.com/dfuse-io/logging now redirects to github.com/streamingfast/logging , when I do go get -u this error comes up:
go get<EMAIL_ADDRESS>updating to
<EMAIL_ADDRESS>parsing go.mod:
        module declares its path as: github.com/streamingfast/logging
                but was required as: github.com/dfuse-io/logging

Any reason why this hasn't been fixed? Is the old logging module different from the new one at streamingfast?

BTW, temporarily fixed this by adding this line to go.mod, after go and before require:
replace github.com/dfuse-io/logging => github.com/streamingfast/logging latest


Add license attribute

specifying the type and URL is deprecated:
https://docs.npmjs.com/files/package.json#license

+1

@pdehaan Thanks. Could you please do two small changes?

Put the license field under the homepage field. It logically belongs there (rather than between file and script related metadata).
Make the commit message say this is just about package.json, e.g. “package.json: Add the "license" attribute”. Also, no need to talk about the obsolete syntax when you don’t use it.

With these changes I’ll merge right away. Your call whether modify this PR or create a new one.

@pdehaan BTW, just curious — am I right guessing that this change was motivated by some license checker failure?

No response, so I did the requested tweaks myself and committed. Closing.


[ROCm] Is AMD ROCm support available in near future?

Prerequisites
Before submitting your issue, please ensure the following:

[x] I am running the latest version of PowerInfer. Development is rapid, and as of now, there are no tagged versions.
[x] I have carefully read and followed the instructions in the README.md.
[x] I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).

Feature Description
To compile and run a model on AMD ROCm/HIP backend just as llama.cpp do.
Motivation
Given that a large amount of users own an AMD card, it's quite beneficial to release a ROCm version of PowerInfer.
Meanwhile, llama.cpp can be compiled with hipblas, when PowerInfer, which is inspired by llama.cpp, could achieve this easily.
Also, ZLUDA is working in progress, it's possible that we can steal cuda libraries to run on an AMD card :)
Possible Implementation

hipBLAS: that's how llama.cpp implemented on AMD cards
ZLUDA: can make AMD cards compatible with cuda, etc.
other methods that I don't know so far

Supporting ROCm can help us outreach broader communities with no doubt, but it is currently not our prioritized item. #139 seems to fix the compiling trouble on ROCm by adding hipBLAS headers, though we haven't tested its functionality.
We appreciate it if you can give us feedbacks of compilation/running under ROCm.

Try to deplpy
following the readme file, I got error messages below:
$ cmake -S . -B build -DLLAMA_HIPBLAS=ON
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Warning at CMakeLists.txt:353 (message):
  Only LLVM is supported for HIP, hint: CC=/opt/rocm/llvm/bin/clang

CMake Warning at CMakeLists.txt:356 (message):
  Only LLVM is supported for HIP, hint: CXX=/opt/rocm/llvm/bin/clang++

-- HIP and hipBLAS found
GNU ld (GNU Binutils) 2.42.0
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- x86 detected
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/orion/ai/powerinfer/build
$ cmake --build build --config Release
[  1%] Building CXX object CMakeFiles/ggml-rocm.dir/ggml-cuda.cu.o
c++: 错误：语言 hip 未能被识别
c++: 错误：语言 hip 未能被识别
make[2]: *** [CMakeFiles/ggml-rocm.dir/build.make:76：CMakeFiles/ggml-rocm.dir/ggml-cuda.cu.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:626：CMakeFiles/ggml-rocm.dir/all] 错误 2
make: *** [Makefile:146：all] 错误 2

It seems that HIPBLAS can only be configured, but cannot be built.

PowerInfer_AMD_Debug_Log.md

Now PowerInfer can run on the AMD device with ROCm, the following is the debug log for your reference. The correct compilation instructions have been updated in README.
Environment:
~$ python3 -m torch.utils.collect_env
Collecting environment information...
PyTorch version: 2.3.0+rocm5.7
Is debug build: False
CUDA used to build PyTorch: N/A
ROCM used to build PyTorch: 5.7.31921-d1770ee1b

OS: Ubuntu 22.04.3 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: 17.0.0 (https://github.com/RadeonOpenCompute/llvm-project roc-6.0.2 24012 af27734ed982b52a9f1be0f035ac91726fc697e4)
CMake version: version 3.22.1
Libc version: glibc-2.35

Python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (64-bit runtime)
Python platform: Linux-6.2.0-26-generic-x86_64-with-glibc2.35
Is CUDA available: True
CUDA runtime version: Could not collect
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: Radeon RX 7900 XTX (gfx1100)
Nvidia driver version: Could not collect
cuDNN version: Could not collect
HIP runtime version: 5.7.31921
MIOpen runtime version: 2.20.0
Is XNNPACK available: True

CPU:
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Address sizes:                   48 bits physical, 48 bits virtual
Byte Order:                      Little Endian
CPU(s):                          16
On-line CPU(s) list:             0-15
Vendor ID:                       AuthenticAMD
Model name:                      AMD Ryzen 7 7800X3D 8-Core Processor
CPU family:                      25
Model:                           97
Thread(s) per core:              2
Core(s) per socket:              8
Socket(s):                       1
Stepping:                        2
Frequency boost:                 enabled
CPU max MHz:                     5049.0229
CPU min MHz:                     3000.0000
BogoMIPS:                        8399.69
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d
Virtualization:                  AMD-V
L1d cache:                       256 KiB (8 instances)
L1i cache:                       256 KiB (8 instances)
L2 cache:                        8 MiB (8 instances)
L3 cache:                        96 MiB (1 instance)
NUMA node(s):                    1
NUMA node0 CPU(s):               0-15
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Mmio stale data:   Not affected
Vulnerability Retbleed:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected

Versions of relevant libraries:
[pip3] numpy==1.26.3
[pip3] pytorch-triton-rocm==2.3.0
[pip3] torch==2.3.0+rocm5.7
[pip3] torchaudio==2.3.0+rocm5.7
[pip3] torchvision==0.18.0+rocm5.7

Debug Log
1. Fail to generate GPU split
.............................................
invoking powerinfer Python module to generate gpu split for 59036.48 MiB of VRAM
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy-py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/xxx/.local/lib/python3.8/site-packages/powerinfer/__main__.py", line 5, in <module>
    from .export_split import export_split
  File "/home/xxx/.local/lib/python3.8/site-packages/powerinfer/export_split.py", line 50, in <module>
    def export_split(activations_path: str, output_path: str, solved_list: list[int], vram_capacity: int):
TypeError: 'type' object is not subscriptable
l1m_load_gpu_split_with_budget: error: failed to generate gpu split
llm_load_gpu_split: error: failed to generate gpu split, an empty one will be used
offload_ffn_split: applying augmentation to model - please wait ...
................................ done (6.43 ms)
1lm_load_gpu_split: offloaded 0.00 MiB of FFN weights to GPU
llama_new_context_with_model: n_ctx      = 512
llama_new_context_with_model: freq_base  = 10000.0
llama new context with model: freq scale = 1
llama_kv_cache_init: offloading v cache to GPU
llama kv cache init: offloading k cache to GPU
llama kv cache init: VRAM kv self = 256.00 MB
11ama_new_context_with_model: kv self size  = 256.00 MB
llama_build_graph: non-view tensors processed: 548/836

Initial Python version is 3.8.xx, which not satisfied with Pre-requisites.
Solution: Upgrade Python Version to 3.8+ or pip install -r requirements.txt
2. Segmentation fault (core dumped)
llama_model_loader: - tensor   58:                   blk.29.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   59:                blk.29.gpu_bucket i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   60:                   blk.30.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   61:                blk.30.gpu_bucket i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   62:                   blk.31.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   63:                blk.31.gpu_bucket i32      [ 11008,     1,     1,     1 ]
llama_model_loader: unknown type i32
llama_model_loader: - kv   0:                       general.architecture str
llama_model_loader: - kv   1:              generic.gpu_index.block_count u32
llama_model_loader: - kv   2:                        split.vram_capacity u64
llama_model_loader: - type  i32:   64 tensors
loaded gpu_idx, vram_required:<PHONE_NUMBER>0
load_gpu_idx_for_model: applying gpu_idx adapter from './ReluLLaMA-7B/llama-7b-relu.powerinfer.gguf.generated.gpuidx' - please wait ...
................................................................ done (0.75 ms)
offload_ffn_split: applying augmentation to model - please wait ...
Segmentation fault (core dumped)

Now this bug has been fixed. Please refer to https://github.com/SJTU-IPADS/PowerInfer/pull/139
Attempted solutions: Change cudaMemcpyToSymbol(dev_sparse_threshold, &sparse_pred_threshold, sizeof(float)) to cudaMemcpyToSymbol(&dev_sparse_threshold, &sparse_pred_threshold, sizeof(float)) But Bug 3 occur

3. CUDA error 13: invalid device symbol
llama_model_loader: - tensor   60:                   blk.30.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   61:                blk.30.gpu_bucket i32      [  1792,     1,     1,     1 ]
llama_model_loader: - tensor   62:                   blk.31.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   63:                blk.31.gpu_bucket i32      [  2048,     1,     1,     1 ]
llama_model_loader: unknown type i32
llama_model_loader: - kv   0:                       general.architecture str
llama_model_loader: - kv   1:              generic.gpu_index.block_count u32
llama_model_loader: - kv   2:                        split.vram_capacity u64
llama_model_loader: - type  i32:   64 tensors
loaded gpu_idx, vram_required:<PHONE_NUMBER>
load_gpu_idx_for_model: applying gpu_idx adapter from './ReluLLaMA-7B/llama-7b-relu.powerinfer.gguf.generated.gpuidx' - please wait ...
................................................................ done (1.91 ms)
offload_ffn_split: applying augmentation to model - please wait ...

CUDA error 13 at /var/lib/jenkins/PowerInfer/ggml-cuda.cu:9440: invalid device symbol
current device: 0

Now this bug has been fixed. Please refer to https://github.com/SJTU-IPADS/PowerInfer/pull/139
4. CUDA error 303: shared object initialization failed
llama_model_loader: - tensor   60:                   blk.30.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   61:                blk.30.gpu_bucket i32      [  1792,     1,     1,     1 ]
llama_model_loader: - tensor   62:                   blk.31.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   63:                blk.31.gpu_bucket i32      [  2048,     1,     1,     1 ]
llama_model_loader: unknown type i32
llama_model_loader: - kv   0:                       general.architecture str
llama_model_loader: - kv   1:              generic.gpu_index.block_count u32
llama_model_loader: - kv   2:                        split.vram_capacity u64
llama_model_loader: - type  i32:   64 tensors
loaded gpu_idx, vram_required:<PHONE_NUMBER>
load_gpu_idx_for_model: applying gpu_idx adapter from './ReluLLaMA-7B/llama-7b-relu.powerinfer.gguf.generated.gpuidx' - please wait ...
................................................................ done (1.81 ms)
offload_ffn_split: applying augmentation to model - please wait ...
................................ done (1764.28 ms)
llm_load_gpu_split: offloaded 1980.00 MiB of FFN weights to GPU
llama_new_context_with_model: n_ctx      = 512
llama_new_context_with_model: freq_base  = 10000.0
llama_new_context_with_model: freq_scale = 1
llama_kv_cache_init: offloading v cache to GPU
llama_kv_cache_init: offloading k cache to GPU
llama_kv_cache_init: VRAM kv self = 256.00 MB
llama_new_context_with_model: kv self size  =  256.00 MB
llama_build_graph: non-view tensors processed: 548/1028
llama_build_graph: ****************************************************************
llama_build_graph: not all non-view tensors have been processed with a callback
llama_build_graph: this can indicate an inefficiency in the graph implementation
llama_build_graph: build with LLAMA_OFFLOAD_DEBUG for more info
llama_build_graph: ref: https://github.com/ggerganov/llama.cpp/pull/3837
llama_build_graph: ****************************************************************
llama_new_context_with_model: compute buffer total size = 36.25 MB
llama_new_context_with_model: VRAM scratch buffer: 34.69 MB
llama_new_context_with_model: total VRAM used: 8210.20 MB (model: 5939.52 MB, context: 290.69 MB)

CUDA error 303 at /var/lib/jenkins/PowerInfer/ggml-cuda.cu:7877: shared object initialization failed
current device: 0

All kernel function can't be launched correctly and all trap into CUDA error 303
Solution: Add additional compilation options: -DAMDGPU_TARGETS=gfx1100 (Replace 1100 to your card architecture, you can get it by rocminfo)
5. Segmentation fault (core dumped)
llama_model_loader: - tensor   60:                   blk.30.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   61:                blk.30.gpu_bucket i32      [  1792,     1,     1,     1 ]
llama_model_loader: - tensor   62:                   blk.31.gpu_idx i32      [ 11008,     1,     1,     1 ]
llama_model_loader: - tensor   63:                blk.31.gpu_bucket i32      [  2048,     1,     1,     1 ]
llama_model_loader: unknown type i32
llama_model_loader: - kv   0:                       general.architecture str
llama_model_loader: - kv   1:              generic.gpu_index.block_count u32
llama_model_loader: - kv   2:                        split.vram_capacity u64
llama_model_loader: - type  i32:   64 tensors
loaded gpu_idx, vram_required:<PHONE_NUMBER>
load_gpu_idx_for_model: applying gpu_idx adapter from './ReluLLaMA-7B/llama-7b-relu.powerinfer.gguf.generated.gpuidx' - please wait ...
................................................................ done (1.76 ms)
offload_ffn_split: applying augmentation to model - please wait ...
................................ done (1744.70 ms)
llm_load_gpu_split: offloaded 1980.00 MiB of FFN weights to GPU
llama_new_context_with_model: n_ctx      = 512
llama_new_context_with_model: freq_base  = 10000.0
llama_new_context_with_model: freq_scale = 1
llama_kv_cache_init: offloading v cache to GPU
llama_kv_cache_init: offloading k cache to GPU
llama_kv_cache_init: VRAM kv self = 256.00 MB
llama_new_context_with_model: kv self size  =  256.00 MB
llama_build_graph: non-view tensors processed: 548/1028
llama_build_graph: ****************************************************************
llama_build_graph: not all non-view tensors have been processed with a callback
llama_build_graph: this can indicate an inefficiency in the graph implementation
llama_build_graph: build with LLAMA_OFFLOAD_DEBUG for more info
llama_build_graph: ref: https://github.com/ggerganov/llama.cpp/pull/3837
llama_build_graph: ****************************************************************
llama_new_context_with_model: compute buffer total size = 36.25 MB
llama_new_context_with_model: VRAM scratch buffer: 34.69 MB
llama_new_context_with_model: total VRAM used: 8210.20 MB (model: 5939.52 MB, context: 290.69 MB)
Segmentation fault (core dumped)

I add some label in the code and claim that program can finish function llama_new_context_with_model and haven't get into function const char * llama_print_system_info(void). Except that, all CUDA function can be executed correctly.
llama_new_context_with_model: compute buffer total size = 36.25 MB
llama_new_context_with_model: VRAM scratch buffer: 34.69 MB
llama_new_context_with_model: total VRAM used: 8210.20 MB (model: 5939.52 MB, context: 290.69 MB)
111
222
Operation: ggml_cuda_op_rms_norm
Operation: ggml_cuda_op_mul
Operation: ggml_cuda_op_rope
Operation: ggml_cuda_op_rope
Operation: ggml_cuda_op_scale
Operation: ggml_cuda_op_add
add_finish
Operation: ggml_cuda_op_soft_max
Operation: ggml_cuda_op_add
add_finish
Operation: ggml_cuda_op_rms_norm
Operation: ggml_cuda_op_mul
Operation: ggml_cuda_op_relu
Operation: ggml_cuda_op_add
add_finish
Segmentation fault (core dumped)

Solution: Add an additional running command parameter: --reset-gpu-index (To avoid any stale cache.)
6. Finish
#How to run it correctly
rm -rf build
CC=/opt/rocm/llvm/bin/clang CXX=/opt/rocm/llvm/bin/clang++ cmake -S . -B build -DLLAMA_HIPBLAS=ON -DAMDGPU_TARGETS=gfx1100
cmake --build build --config Release -j 24
./build/bin/main -m ./ReluLLaMA-7B/llama-7b-relu.powerinfer.gguf -n 128 -p "Once upon a time" --ignore-eos --seed 0 --top-k 1 --reset-gpu-index


Config the date

If there's any config files can re-loading the date's label like fliggy
show the festival days and holidays?

Hi @LucasDvp, you can use the renderDay prop to conditionally render different content. It takes in a moment object and expects a div as output. For instance, you could do:
renderDay((day) => {
  if (day === some holiday) return Holiday!

  return day;
}

@majapw ok, so I need to write my own festival rendering functions. but if there has a re-loading function would be better~~~ 👍

What do you mean by a reloading function?
On Fri, Aug 25, 2017, 9:07 AM lucas_f<EMAIL_ADDRESS>wrote:

Closed #687 https://github.com/airbnb/react-dates/issues/687.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/react-dates/issues/687#event-1221059566, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABUdtXboWos1F147LOgB4WUHNxpsy_Ymks5sboDfgaJpZM4PCUqq
.

It's like If I request a festival API(like Chinese Festival API), it will return me a JSON like this:
{
    "holiday": "National Holiday",
  	"dates": ['2017-10-01', '2017-10-02', '2017-10-03', '2017-10-04', '2017-10-05', '2017-10-06', '2017-10-07'],
  	...
}

So if users can just offering specific json format or even support the online API integration(different country) which  would be so cool.

I guess the whole react-dates thing is that we want it to be highly
configurable so that you can build out this kind of functionality by
combining react-dates with some other api easily, but we're unlikely to
build in support for a specific integration ourselves. :) The renderDay
method is still likely what you are looking for.
On Fri, Aug 25, 2017, 9:36 AM lucas_f<EMAIL_ADDRESS>wrote:

It's like If I request a festival API(like Chinese Festival API), it will
return me a JSON like this:
{
"holiday": "National Holiday",
"dates": ['2017-10-01', '2017-10-02', '2017-10-03', '2017-10-04', '2017-10-05', '2017-10-06', '2017-10-07'],
...
}
So if users can just offering specific json format or even support the
online API integration(different country) which would be so cool.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/airbnb/react-dates/issues/687#issuecomment-324857962,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUdteLSCGnZ5-7lANnFmyZHt1Mb2vYMks5sbod8gaJpZM4PCUqq
.

@majapw OK, I will made a small plugin based on react-dates, thank you so much~~~


added ability to render headers inline

Added the ability to render headers inline instead of always on top. This is to mimic the functionality of headers in the stock Contacts app.

I was actually thinking about implementing this functionality, it's great that you've contributed this! :smiley:

Perhaps extending the StickyHeaderDecoration and only overriding the getItemOffset method would provide a cleaner solution since that is the only point where the sticky header and the inline header would differ.

Sorry for the delay and thank you very much for your contribution! :+1:


Day368

Resolves #743

Pull Request Test Coverage Report for Build 1408

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 1406:
0.0%

Covered Lines:
5

Relevant Lines:
5

💛  - Coveralls


lxd init should modprobe zfs, if necessary

⟫ sudo lxd init
sudo: unable to resolve host ip-10-16-111-113
Name of the storage backend to use (dir or zfs): zfs
Create a new ZFS pool (yes/no)? yes
Name of the new ZFS pool: lxd
Would you like to use an existing block device (yes/no)? yes
Path to the existing block device: /dev/sdf
Would you like LXD to be available over the network (yes/no)? no
error: Failed to create the ZFS pool: The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.

LXD isn't the right place to fix this one.
Last time we had a report of this one, I've had the reporter send it to @ColinIanKing to have Ubuntu fixed. The zfs module appears to get auto-loaded at boot time, but isn't at install time which makes the zpool command fail right after install, that's a bad user experience which should be fixed in the zfs package or the zfs tools rather than in all downstream users.

Looks like we were doing it at runtime anyway, so I'll be adding it to init too then.

I still think that needs fixing in Ubuntu in general as otherwise our first use zfs experience is pretty bad...


Accented characters missing in native fonts

Version
No response
What browsers are you seeing the problem on?
Chrome
What happened?
All accented characters (à,é, etc.) are missing in the native fonts.
What's the expected behavior?
Have the accents rendered.
Minimum reproducable code
No response
Live demo
No response

I recommend adding your own font. The default fonts do not contain these characters but may do so in the future, thank you

Thanks for your answer. Adding a font is already our workaround, but I really think it should be native : I'm using Kaboom in an educational setting (University) and having to explain that we'll have to manually add such a native feature is quite... meh.

The next version of Kaboom supports all fonts that browser support (built-in fonts, .ttf .otf, .woff etc. These changes are also published in kaboom@next (this is a dev release and might also contain breaking change)

Purrfect ! Thanks !


Integrate with login with unstoppable

i integrate login with unstoppable to your ethtalk app, unfortunately i can't deploy it into production because i don't have firebase blaze package but i have made a demo video for it, my demo is using it on the main page, and also embed it into wordpress locally, here is my docker-compose.yml if you want to try it, i also create DEVELOPER.md files because im thinking for somebody who haven't try firebase before it could help them if let's say they want to develop this as well in the future and here is the video demo:
https://user-images.githubusercontent.com/62529025/152626475-61a312b9-2213-4df5-9d30-effde7dfaadc.mp4
Discord ID: spiritbro1#1101
Unstoppable Domain Registered email address<EMAIL_ADDRESS>

Wow, great contribution, thanks 🙏🙏🙏
Let me take time to review the code and I'll merge and deploy it to prod by tomorrow.

Wow, great contribution, thanks 🙏🙏🙏 Let me take time to review the code and I'll merge and deploy it to prod by tomorrow.

thanks ma man take your time

hi no worries i create another pull request that i think gonna simplify it
On Thu, Feb 10, 2022 at 6:09 PM Chun Rapeepat @.***>
wrote:

@.**** commented on this pull request.

—
Reply to this email directly, view it on GitHub
https://github.com/chunza2542/ethtalk.app/pull/2#discussion_r803559530,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO5B4AP5PJAGN4KZO2KELRLU2OMHRANCNFSM5NTK34AA
.
You are receiving this because you were mentioned.Message ID:
@.***>


TweetComposer.Builder Callbacks are not acceptable?

TweetComposer.Builder Callbacks are not acceptable?

Not sure if this is what you mean, but Twitter Kit's callback urls can be found here


Small fixes

(Mostly) 1 fix per commit. See commit messages.
Merge only after #141.
Do not merge yet, fails the build.

Ondrej, did you automatically get a mail because the jenkins build failed?

@ge0ffrey no, I didn't. Did you?

No, me neither. Checking with Petr - it would be nice that the submitter of a PR gets a mail if it fails on jenkins.
cc @psiroky

I agree it would be nice. However, with the current setup it is not as easy as it may seem. I'll need to check the Jenkins plugins doing the PR builds if this is easily possible.

retest this please
(testing if the e-mailing for failed build works)

Looks like the Jenkins is refusing to re-run the build, because there were no changes since the last build. That technically makes sense, but still I thought it would simply run the build if told so. To test the e-mailing there would need to be change in the PR branch (new commit or force push that changes the SHAs)

@psiroky will open a new PR where we can test this ASAP

Looks all good, but it seems to include PR 141.
Shall I wait with merging until PR 141 is fixed and will this PR be updated accordingly? Or is there another way to avoid havoc?

@ge0ffrey That is on purpose, else the new tests would fail. Will rebase after #141 is merged and ping you when that's done.


Cannot convert argument "srv"

Before submitting a bug report:

[X] Ensure you are able to reproduce it on the latest released version (we release often)
[X] Verified this bug is not already reported in an issue
[X] Verified errors are not related to permissions
[X] Can reproduce in a clean PowerShell session (clean = powershell -NoProfile)

Steps to Reproduce
Running script below in Powershell ISE.
Import-Module dbatools;

[string] $InstanceName = "SOSQL25\SOSQL25A";
[string] $InstanceBackupPath = '\\path\to\backups\';
[string] $Query = "SELECT @@SERVERNAME;";

Get-DbaBackupInformation -SqlInstance $InstanceName -DatabaseName master -Path $InstanceBackupPath;

Write-Host "First statement works";

Invoke-Sqlcmd -ServerInstance $InstanceName -Database master -Query $Query;

Write-Host "Second statement also works";

Get-DbaBackupInformation -SqlInstance $InstanceName -DatabaseName master -Path $InstanceBackupPath;

Write-Host "Third statement fails";

Expected Behavior
All the statements are ran without error.
Actual Behavior
After running the Invoke-Sqlcmd the second Get-DbaBackupInformation returns a error, see script output below.

Cannot convert argument "srv", with value: "[SOSQL25\SOSQL25A]", for "ReadBackupHeader" to type Microsoft.SqlServer.Management.Smo.Server": "Cannot convert the "[SOSQL25\SOSQL25A]" value of type "Microsoft.SqlServer.Management.Smo.Server" to type "Microsoft.SqlServer.Management.Smo.Server".

It seems that Invoke-Sqlcmd or Get-DbaBackupInformation skrews with shared variables or objects.
When using  Invoke-Sqlcmd2 the problem does not arise. But I'm not able to change all the existing Powershell code atm. Running the script the second time, even the first statement containing Get-DbaBackupInformation fails.
Environmental data

PowerShell:
Name                           Value

PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           <IP_ADDRESS>
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.18728
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2

SQL Server: Microsoft SQL Server 2016 (SP2-CU2-GDR) (KB4458621) - 13.0.5201.2 (X64)   Aug 18 2018 07:38:15   Copyright (c) Microsoft Corporation  Developer Edition (64-bit) on Windows Server 2012 R2 Standard 6.3  (Build 9600: ) (Hypervisor)

Afraid I can't replicate that:

Could you rerun this with $instance.GetType() after each statement so we can see if the type changes
Neither command modifies the $InstanceName in my example, and I neither command does that anyway as far as I know.

Thanks so much for looking into this, Stuart!

Afraid I can't replicate that:

Could you rerun this with $instance.GetType() after each statement so we can see if the type changes
Neither command modifies the $InstanceName in my example, and I neither command does that anyway as far as I know.

Thank you for your reply.
$instance.GetType() does not return anything.

Actually, I just reread and Invoke-Sqlcmd is being run which means SqlServer or SQLPS is being loaded. Unfortunately, we do not support this configuration due to issues like this, our apologies, it's not possible to fix.

@potatoqualitee thank you for looking into the problem I'm faceing. When running the script outside of ISE the error is not occuring.

Happy to! I do try to avoid the ISE myself except when I have to (presentations). VS Code's host causes some issues as well. I generally try to do straight console because it's reliable.
You may run into unexpected issues in the future with the console+SqlServer too, however, I've found mixing them to be inconsistent.


[backport] fix: set cluster auto-upgrade and node auto-upgrade in the hackfile #2253

Backports:

#2253 to unblock pipelines
#2564 to restrict v1.4 release train to k8s v1.27. Currently was on 1.29.7. Previous release was on 1.28.9.

Going from .28 to .29 changed how IPs were stored in CNS. This is causing validate pkg to fail and block PRs.

Reason for Change:

Issue Fixed:

Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[x] relevant PR labels added

Notes:

/azp run Azure Container Networking PR

/azp run Azure Container Networking PR

/azp run Azure Container Networking PR


Pdf view is not fit in the view when call forceReload

When call the forceRelod .....then pdf page is not fit in the view .........I notice when the page number is 2nd page or next .....then pdf view is not fit .....
Here I want to change horizontal and vertical view press button ...then reload the pdf view ..

Could you please explain me what is "force reload"?

Sir basically, when horizontal and vertical PDF views change with a button in real-time...then I use the force reload feature....
here my code ....
///------------Dynamically calculate the page viewport and number----------///
          calculateCurrentPageNumber: (viewport, pageLayouts, controller) {
            if (isHorizontalViewMode) {
              // Manually calculate the current page number in horizontal mode
              final double viewportCenter =
                  viewport.left + viewport.width / 2;
              double minDistance = double.infinity;
              int currentPageNumber = 1;

              for (int i = 0; i < pageLayouts.length; i++) {
                final pageLayout = pageLayouts[i];
                final centerDistance =
                    (viewportCenter - pageLayout.center.dx).abs();

                if (centerDistance < minDistance) {
                  minDistance = centerDistance;
                  currentPageNumber = i + 1; // Page numbers are 1-based
                }
              }

              return currentPageNumber;
            } else {
              // In vertical mode
              if (pageLayouts.isEmpty) {
                // Handle the case when there are no page layouts (e.g., empty PDF)
                return 1;   // Or any other appropriate value
              }

              final viewportCenter = viewport.top + viewport.height / 2;
              double maxVisibleArea = 0;
              int currentPageNumber = 0;

              for (int i = 0; i < pageLayouts.length; i++) {
                final pageLayout = pageLayouts[i];
                final visibleArea =
                    viewport.intersect(pageLayout).height * viewport.width;
                final centerDistance =
                    (viewportCenter - pageLayout.center.dy).abs();

                // Adjust weights based on your requirements
                final score = visibleArea + centerDistance * 0.5;

                if (score > maxVisibleArea) {
                  maxVisibleArea = score;
                  currentPageNumber = i + 1; // Page numbers are 1-based
                }
              }

              return currentPageNumber;
            }
          },

and in   PdfViewerParams ....
          forceReload: isReloadPDFView,
          pageAnchor: PdfPageAnchor.top,
          pageAnchorEnd: PdfPageAnchor.bottom,

https://github.com/espresso3389/pdfrx/assets/170789007/e17008a6-6355-431c-b83d-5474ad8b8942

OK, the control of the view is not automatic because basically we cannot know your intention; in other words, we don't know what should be the default behavior.
So, it's completely up to you to control the behavior. You'd better call PdfViewController.goToXXX to control the current page.

Ok....thanks

Any further questions or comments?

No, Sir... I have implemented PdfViewController.goToXXX when calling horizontal and vertical views....
But, if there is a feature like "pdfview.horizontal(true)" .....by default...then it is quite helpful


Failed to update token costs. Using static costs. F:\gitingest\giti\Lib\site-packages\tokencost\constants.py:69: RuntimeWarning: coroutine 'update_token_costs' was never awaited   logger.error("Failed to update token costs. Using static costs.") RuntimeWarning: Enable tracemalloc to get the object allocation traceback

(giti) F:\gitingest\gitingest>cd src
(giti) F:\gitingest\gitingest\src>uvicorn main:app --reload
INFO:     Will watch for changes in these directories: ['F:\gitingest\gitingest\src']
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [17168] using WatchFiles
Failed to update token costs. Using static costs.
F:\gitingest\giti\Lib\site-packages\tokencost\constants.py:69: RuntimeWarning: coroutine 'update_token_costs' was never awaited
logger.error("Failed to update token costs. Using static costs.")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
INFO:     Started server process [16228]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     <IP_ADDRESS>:49884 - "GET / HTTP/1.1" 400 Bad Request
INFO:     <IP_ADDRESS>:49884 - "GET /favicon.ico HTTP/1.1" 400 Bad Request

(giti) F:\gitingest>pip install uvicorn --upgrade
Requirement already satisfied: uvicorn in f:\gitingest\giti\lib\site-packages (0.34.0)
Requirement already satisfied: click>=7.0 in f:\gitingest\giti\lib\site-packages (from uvicorn) (8.1.7)
Requirement already satisfied: h11>=0.8 in f:\gitingest\giti\lib\site-packages (from uvicorn) (0.14.0)
Requirement already satisfied: colorama in f:\gitingest\giti\lib\site-packages (from click>=7.0->uvicorn) (0.4.6)

Yes this is an Issue with the current token estimation library (tiktoken through tokencost PIP package)
I'm marking this as bug and will see how I can replace this component

Failed to update token costs. Using static costs.
C:\Users\Sushant\AppData\Roaming\Python\Python312\site-packages\tokencost\constants.py:69: RuntimeWarning: coroutine 'update_token_costs' was never awaited
logger.error("Failed to update token costs. Using static costs.")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

still getting same error

Yes I havn't had the time to look into it yet but will do shortly

This is fixed now because we use tiktoken with the right parameters instead of tokencost


not transfer file in Linux

Hello.
I use edumeet in Linux.
But I don't see download file.  Can you help me? https://<IP_ADDRESS>

HI, the host doesn't seem to respond. The File sharing should work proberly out of the box.
Additionally, you can also test a develop branch. There are many changes there including updated version of File Sharing.

thanks Roman.
I'd like you to kindly send me url of develop branch.
I hope to test the develop branch, really.
On Wed, Jul 21, 2021 at 8:52 AM Roman Drozd @.***>
wrote:

HI, the host doesn't seem to respond. The File sharing should work
proberly out of the box.
Additionally, you can also test a develop branch. There are many changes
there including updated version of File Sharing.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/edumeet/edumeet/issues/886#issuecomment-884297902,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUWALYDR7UGVFGO52ARNFL3TY3UKBANCNFSM5AVK7XQA
.

When you git clone git@github.com:edumeet/edumeet.git
then git checkout develop and follow the instruction on
https://github.com/edumeet/edumeet/tree/develop

I'm happy to receive your message, thanks.
I'll try. all the best.
On Thu, Jul 22, 2021 at 5:43 AM Roman Drozd @.***>
wrote:

When you git clone @.***:edumeet/edumeet.git
then git checkout develop and follow the instruction on
https://github.com/edumeet/edumeet/tree/develop
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/edumeet/edumeet/issues/886#issuecomment-884882117,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUWALYBX2ILXWR7TKXXQW3LTZAHAHANCNFSM5AVK7XQA
.

I'm closing this issue, if any other problems related to it, please reopen it.


[AutoPR msi/resource-manager] chore: jsonfmt msi

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6185

This PR has been merged into https://github.com/Azure/azure-sdk-for-js/pull/3396


Improve transaction validation in the mempool

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
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.

Verify proofs as argument, throw away the tx any proof doesn't verify
For non-proven appchain deployments, we still need to compile the requires proof, in case it's not a DynamicProof, to be able to validate proofs-as-arguments against that resulting VK. This means that users will have to still produce the proofs that they send to the runtime, but otherwise every use can send unrestricted public input/outputs to the runtime and potentially break the system

Also, we should sort the returned transactions when returning the from the mempool, so that multiple transactions from the same sender appear in the correct order

We should also add a configurable maximum block size that the mempool respects


aurbuild: failures with verifying signatures for chroot builds

This still fails occasionally, even though PGP checks should be skipped inside the chroot (but not outside it).

This fails both inside and outside the chroot:

Outside: makechrootpkg is run as root, which drops priviledges to builduser with sudo -u builduser makepkg. As such, GNUPGPHOME isn't preserved.
Inside: Keys from $SUDO_USER/.gnupg are copied over.
The only way to make this work is using $HOME/.gnupg (a symbolic link to a different location also fails). aurbuild should warn on this if GNUPGHOME is set to a non-standard path.


[BUGFIX] Fix miss analytic expression in sqlmode not only_full_group_by

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #6153 #6156
Problem Summary(Required) ：

[FE PR Coverage check]
:heart_eyes: pass : 9 / 9 (100.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/analyzer/SelectAnalyzer.java
7
7
100.00%

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
2
2
100.00%


batchAddTags only adds tags to one entity

Describe the bug
Using the graph-ql function mutation batchAddTags only the last entity of the list is updated.
To Reproduce
Steps to reproduce the behavior:

Go to datahub-instance...api/graphiql
Use mutation batchAddTags with multiple entities in list for resources:
Check the tags added to the entities
See only the last entity in the last has an added tag

Expected behavior
All entities in the list have added tags.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Used the function with DATASET_FIELD entities.

@jakobhanna can you share the payload you submitted for this issue? i just tried it myself locally and I was not seeing this same issue myself.

Hi Chris, thanks for the fast reply. Here is my Payload:
mutation batchAddTags {
  batchAddTags(
    input: {
      tagUrns: ["urn:li:tag:PSQ19"],
      resources: [
        {resourceUrn: "urn:li:dataset:(urn:li:dataPlatform:schema-repo,kpi_,PROD)",
          subResourceType: DATASET_FIELD,
          subResource: "[version=2.0].[type=tr069_kpi_schema_].[type=number].received_at"},
        {resourceUrn: "urn:li:dataset:(urn:li:dataPlatform:schema-repo,kpi_,PROD)",
          subResourceType: DATASET_FIELD,
          subResource: "[version=2.0].[type=tr069_kpi_schema_].[type=number].year"}]},

  )

Graph-QL response is:
{
  "data": {
    "batchAddTags": true
  },
  "extensions": {}
}

Hopefully now you can reproduce or show me, if i am doing something wrong. I attached also a screenshot for you.
Cheers,
J

Any update on this? I am currently facing the same issue.

Sorry for this, but we are actually a bit blocked by this behavior. Any update/fix coming?

@djrmarques sorry for the delay here! i'll be looking into this asap and will update you with what I find. I appreciate your patience but if I can repro (which will be helpful with the payload comment above) then we should be able to get a fix out here!

No problem at all, and thanks for taking a look!

okay yes confirmed I see the issue here! thanks so much for calling this out. I'll try to knock out the bug this week and it should be included in the next release

Thanks for the great support!!!

Thanks a lot!

Hey @chriscollins3456 , sorry to ping again, do you know if this ended up getting fixed on v0.13.0? Thank you :)

seems, it is still actual for me too. Regarding the last version of Datahub btw 0.13.1

@chriscollins3456 hi Chris! Is there any updated plan to roll out such fix, please? Thank you!

still actual, guys


9 Greedy: Added rucksack problem algorithm

I have implemented the rucksack/Knapsack problem  on Go! https://en.wikipedia.org/wiki/Knapsack_problem
If I have to change something tell me
Greetings,
duxy1996

@Duxy1996 Reference the issue number in the PR

The issue is the number 9. I added in the PR title


Problem with codeunit "Data Compression" in loop

Hello,
I have problem when I use codeunit "Data Compression" in loop. I am using function open ZipArchive (my file have 70MB). This zip file is opened correctly. First file is read correctly, but second file not. It looks like InStream does not start from postion 0 and I get strange lines by ReadText function. Can you check it please or write me what is wrong?
My example code:
DataCompressionMgt.OpenZipArchive(ZipFileInStream, false);
DataCompressionMgt.GetEntryList(FileList);
foreach FileName in FileList do begin
Clear(TempBlob);
Clear(FileOutStream);
Clear(FileInStream);
TempBlob.CreateOutStream(FileOutStream,Textencoding::UTF8);
TempBlob.CreateInStream(FileInStream,Textencoding::UTF8);
DataCompressionMgt.ExtractEntry(FileName, FileOutStream,EntryLength);
while not FileInStream.EOS() do begin
FileInStream.ReadText(TextLine);
end;
end;

Shouldn't you Create the Instream after the Entry was extracted to the OutStream?
Not sure if this might cause this issue.

I moved part stream creation out from loop, but it doesn't help. Do you have working example which can read all files from one zip file?

Hello do you have any information?

Hey @fridrichovsky
Thank you for reporting this issue and for providing your code. We'll take a look ourselves and come back to you shortly.
Meanwhile, if you find the bug in the code yourself, feel free to open a PR with the fix :)

Hi again!
I could not repro the weird behavior? @fridrichovsky, can you provide a zip file (without any sensitive data) that we can use to repro? In your case, are you sure the encoding is UTF8?

Hope the issue somehow was resolved. Closing this issue due to inactivity and lacking ability to reproduce. If this issue persists, please create a new one (with working repro steps) and we'll happily take another look!


clarify requirements on the base url

This PR tries to clarify a couple of issues in the requirements for the base url.

The spec seemed to define a way for clients to construct new base
urls themselves. This bit is removed, since clients can easily discover
the base urls of supported versions via the info/ endpoint.

It was unclear whether the spec mandated serving the API both under
a baseurl and under a baseurl + version suffix. This PR makes clear
that the second part is optional.

The spec differentiated between treatment of vMAJOR, vMAJOR.MINOR and
vMAJOR.MINOR.PATCH version numbers. Since clients use /info to access
supported versions, this special treatment is not needed.

The spec gave examples of invalid base urls. Strictly speaking, all
base urls are valid - it is just certain combinations of base URLs that
are invalid.

I agree that the use of the "base URL" term in this paragraph is confusing - I did not intend to change its meaning.
I will make an update to try to address this.
One issue, however, is the fact that we allow this "nesting" of base URLs in the first place, which (to my understanding) is not common practice in REST APIs.

Thanks @rartino for giving this a read!

However, my reading of the present text is that accessing the API via the major version number is REQUIRED to be supported by implementations.

I agree (I also read the current spec that way) - and I strongly suggest to drop this requirement.

Because the URL structure of /info and the format of /info may change in future versions, so IMO it would be a design fault for a client to assume it will find something it understands under optimade/info.

A change of the /info endpoint would require a change in spec - the same argument applies to the specification of the version-specific base URLs.

The safest and recommended way for a client to access an OPTiMaDe endpoint is to always go via optimade/vN/ where N is the latest major version the client supports.

I don't think that is true. The client can only access optimade/vN if both the client and the server support it.
In order for the client to figure out which base URLs are supported it will anyhow need to go to the /info endpoint.
At that point, it can just as well take the base URLs that the server reports for the particular version.

A change of the /info endpoint would require a change in the spec - the same argument applies to changing the specification of the version-specific base URLs.

I suppose this point is formally correct; future versions of the standard could, in theory, chose to abandon the version-specific URLs so that v1/, v2/, etc. no longer mean the same thing. However, in practice, that is not something one does in a design like this. I suppose we could explicitly put down that commitment in the specification, but I would argue that it is implicit in the design (as with many other APIs that use the same system.)
However, If I understand your main point, you want this PR to change the standard to discourage all forms of versioning negotiation based on URLs and instead push for version negotiation to go through the "raw" base URL /info endpoint? You thus mean that just as well as the commitment to the fixed URLs above, we can make the same type of commitment for upholding the location and response format of the /info endpoint for ALL future versions of OPTiMaDe?
I don't think that is a good idea. We may, in the future, need to change our URL structure so that the meaning of /info changes, e.g., to adhere to future API standards such as a future version of JSONAPI. We may need to change the format of the response (we've already been through two formats for our JSON representation for the URL to version mapping...). We may even, at some point, want to abandon JSONAPI (or even JSON) for other standards.

The safest and recommended way for a client to access an OPTiMaDe endpoint is to always go via optimade/vN/ where N is the latest major version the client supports.

The client can only access optimade/vN if both the client and the server support it.
In order for the client to figure out which versions are supported by the server it will anyhow need to go to the /info endpoint.

In URL-based version negotiation, if a client supports multiple main versions, it tries optimade/vN for all values of N it supports in order of priority. If we end up having to release so many main versions of OPTiMaDe that this scheme starts to become a nuisance (and I really hope we won't) we can at that point design a solution that applies to all versions onwards.

At that point, it can just as well take the base URL that the server reports for the particular version (and I suggest it should).

To reiterate my point, the client cannot do that if it cannot safely assume it will understand the response it gets from /info.
I'll also add that URL-based versioning of the kind we have in the specification now is more or less the standard way of doing this. You see the same design if you look at e.g., the APIs of Facebook, Twitter, etc. So, to change to a different way of doing it would have to be thoroughly motivated.

You make some fair points - I think you're right that the response from /info is more likely to change than the API schema (although the actual versions supported by the server might change).
This means it is probably better if clients don't use the /info endpoint to figure out which URL to go to (perhaps we should state this in the spec).
I will change that back accordingly.

I'll also add that URL-based versioning of the kind we have in the specification now is more or less the standard way of doing this. You see the same design if you look at e.g., the APIs of Facebook, Twitter, etc.

I had a look at the facebook API and - as you said - they are indeed serving the API both under graph.facebook.com (still serving v2.11) and under graph.facebook.com/v2.11, ..., /v5.0 - which I wouldn't have thought - thanks for pointing this out.
Thinking back to the issue with the optimade-python-tools server that originally drove me here, there is one main remaining question that I have:
The fact that the /info endpoint is supposed to inform about available API versions seems to suggest that all the APIs (say, those served under /optimade, /optimade/v1, /optimade/v2) would need to be run from the same instance of an application (otherwise, how could those three APIs know about the availability of the other ones?).
I'm wondering whether that is a good idea?
If that's variant (A), then alternative (B) would of course be to simply have self-contained instances of APIs that know just about themselves and nothing about the rest of the world (they would still be served under base URLs according to the spec, but it wouldn't be "baked into the application").
Going with route (B) makes the implementation of the server a bit easier, since you don't have to add functionality to support multiple API versions in the same code base (e.g. optimade-python-tools currently does not have this).
When a new version of the API comes out, you can update your codebase and shoot up a new instance of the server (while keeping the old ones running).
There may be no need to force people into either route, but perhaps it would be worth to allow rout (B) as well, and perhaps give a little bit of guidance on this in the "base URL" section.

The fact that the /info endpoint is supposed to inform about available API versions seems to suggest that all the APIs (say, those served under /optimade, /optimade/v1, /optimade/v2) would need to be run from the same instance of an application (otherwise, how could those three APIs know about the availability of the other ones?).
I'm wondering whether that is a good idea?

The design doesn't necessarily force all versions to be served from one implementation. It just requires available_api_versions to be manually configurable to point at all your versions.
But, you have a point in that this puts work on "route (B)" implementations that is susceptible to likely human error. Hence, I'd be fine with the requirement on /info being relaxed to only mandating reporting subversions of the same main version, and optional beyond that. However, reading the specification, I don't actually see a compliance statement about to what degree available_api_versions must be complete, so in a strict reading, this may already be allowed (but we should probably clarify that).
That said, a "route (B)" implementation still requires quite a bit of cooperation from the webserver, because versioned URLs must be re-routed to the different implementations, even though they are UNDER an URL that is served by the implementation for the latest version.
Would it be better if we completely remove the serving of the API on non-versioned URLs and REQUIRE clients to indicate their desired main version? I honestly would see that as a win, because the non-versioned "latest version" base URL will just lead to lazy client implementators cursing every time we release a new major version that is not backwards-compatible. I guess this is the reason Facebook still serves 2.11 under graph.facebook.com.

reading the specification, I don't actually see a compliance statement about to what degree available_api_versions must be complete, so in a strict reading, this may already be allowed (but we should probably clarify that).

Yes - I think a comment / some guidance on this question in the spec would be helpful.

That said, a "route (B)" implementation still requires quite a bit of cooperation from the webserver, because versioned URLs must be re-routed to the different implementations, even though they are UNDER an URL that is served by the implementation for the latest version.

It is indeed an invasion of the namespace of the API hosted at the top-level base URL, and that's why I was a bit surprised to see facebook doing this.
However, the fact that it works for them suggests that this is not a problem in practice, and technically it is of course very straightforward to configure at the apache/nginx level, outside the application.
So perhaps there is no need to be too worried about this.

Would it be better if we completely remove the serving of the API on non-versioned URLs and REQUIRE clients to indicate their desired main version? I honestly would see that as a win, because the non-versioned "latest version" base URL will just lead to lazy client implementators cursing every time we release a new major version that is not backwards-compatible. I guess this is the reason Facebook still serves 2.11 under graph.facebook.com.

Just to be sure I understand correctly: you would disallow serving an API under example.com/optimade?
I suspect (?, this was before my time) that one reason for the original spec was to allow database providers the "simple" solution of just having one API under one URL, and to just keep updating the implementation of this one API as they go along.
It's not the cleanest solution but it would seem like a simple one.
However, it's true that allowing unversioned URIs raises the question: how should clients check the version of the API they are connected to?
I guess that would have to be the /info endpoint after all, which would bring us back to the beginning of our argument... hm.

Just to be sure I understand correctly: you would disallow serving an API under example.com/optimade

Yes, all API access would have to go through example.com/optimade/v1, etc. That is also how people write clients for other APIs today (e.g., facebook, twitter).

However, it's true that allowing unversioned URIs raises the question: how should clients check the version of the API they are connected to?

I think all use of example.com/optimade by automated clients is, more or less, a design error. As far as I can see, it is only for a human that manually (or semi-manually via a client library) explores the API that the unversioned URL makes some sense. The human would actively look at the responses and understand that the interactions work as expected. If the implementation suddenly updates the version served on the non-versioned URL (which could happen in the middle of a session!), there could be errors, but the human would see them, understand what is happening, and react appropriately.
I'm coming to the realization from this discussion that, at the very least, we should include a text segment that heavily discourages non-human-supervised access of the non-versioned URL. But it honestly seem as a major mistake to put in the standard that example.com/optimade serves an API version that can at any point suddenly change in a way that isn't backward compatible.

Ok, I think I am done now. Please review.
Note that this now actually affects some response examples, and thus may lead to us needing some adjustments in our implementations. But I see no option to doing that when we had fields named base_url that in some examples were shown adding the version path segment, and sometimes not.
(Please make sure to ASAP approve #244 as well so we can fix the travis error here.)

@rartino As this is my PR, you'll need to approve ;-)

you guys can go ahead and merge

Let's say this is good enough for the release candidate, and if there is a desire to further clarify, PRs for that can be handled before the proper release.
In any case, thanks @ltalirz for the first version; this really resolves a confusing inconsistency in the spec.


Investigate pure JS grpc client

There is a pure grpc client available. Check out if it can be used to replace the C client.

Installing @grpc/grpc-js and changing the reference in the GrpcClient, the client seems to work fine - topology, deploy, and createWorkflowInstance work.
However, no jobs are activated by the worker.

Working implementation in https://github.com/creditsenseau/zeebe-client-node-js/pull/147


Humidifier Filter Life

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
The OEM app has the ability to show the Humidifier Filter Life, but this entity does not show up in the HA integration.
Describe the solution you'd like
Would it be possible to add an entity for Humidifier Filter Life?
Describe alternatives you've considered
N/A
Additional context
N/A

added in v1.24.0


Site Preloader

@micchickenburger : this is interesting, not specifically for the UI, but how the data is loaded.
https://github.com/MiroHibler/meteor-preloader


es6 support

Requesting support for the new es6 model. This model has separate up light and down light controls.

Hello.  Assuming you have an es6 (I don't know anyone else who might), do you want to participate in adding support for it by running betas and providing your log files?

Sure, just let me know what you need.

I'll assume you know at least as much as I do about homebridge and you can let me know if I get ahead of you.
Can you add the following to your config.json  in your fan specific section, like after the "ip" line, and then restart homebridge with debugging turned on (-D) and post the plugin's logs?  Don't forget the , separator.
"debugLevels": [
  [ "cluing", 1 ]
]

You'll probably want to edit out any personal info that shows up, like MAC address or a public IP address.  Or, if you like we can do this in Discord or email or whatever.

Very good. How about changing [“cluing”, 1] to [“cluing”, 6] and restarting. I’m hoping to see messages from the fan that are unexpected - presumably unique to the es6.

On Jun 21, 2022, at 5:06 PM, Emotive9 @.***> wrote:

I've added the debeg lines to the config under the fans and am running in debug mode but do not see anything relevant coming from the fan. I am running homebridge in docker.
{
"name": "Family Room",
"ip": "xx",
"debugLevels": [
[
"cluing",
1
]
],
"mac": "xx",
"fanModel": "other",
"whoosh": false,
"fanAuto": false,
"lightAuto": false,
"dimToWarm": false,
"ecoMode": false
}
[6/21/2022, 5:02:16 PM] [homebridge-i6-bigassfans] dblog progress(0/0) Family Room - model: es6 (0x65, 0x73, 0x36)
[6/21/2022, 5:02:16 PM] [homebridge-i6-bigassfans] dblog progress(0/0) Family Room - firmware: 3.0.2
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.

Here is the output:
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc8, 0x07, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x80, 0x04, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x88, 0x03, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xa8, 0x08, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc2, 0x03, : now
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc8, 0x03, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc8, 0x08, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xd0, 0x08, : 7
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xda, 0x03, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xe0, 0x08, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xe8, 0x03, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xf0, 0x03, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x90, 0x05, : 2
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x9a, 0x05, : 0x00
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc0, 0x04, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xe0, 0x0a, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xe2, 0x04, : now
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xe8, 0x0a, : 0xff, 0xff, 0xff, 0xff, 0x0f
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xf0, 0x0a, : 0x80, 0xdd, 0xdb, 0x01
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xf8, 0x0a, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc8, 0x05, : 22
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(5/6) Family Room - code watch - s: 0x18, 0xc0, m: 0xbe, 0x01
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog progress(0/0) Family Room - model: es6 (0x65, 0x73, 0x36)
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x18, 0xc0, : 0xbe, 0x01
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog progress(0/0) Family Room - firmware: 3.0.2
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x6a, 0x01, : 52
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x70, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0x78, : 24
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xaa, 0x02, : 1050-46-50
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xb0, 0x07, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc0, 0x08, : 0
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc8, 0x09, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xe2, 0x09, : 0x07, 0x08, 0x92, 0x29, 0x10, 0x07, 0x20, 0x02
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xb8, 0x09, : 1
[6/22/2022, 8:28:54 AM] [homebridge-i6-bigassfans] dblog cluing(4/6) Family Room - initial mystery property value: 0xc2, 0x09, : 0x21, 0x12, 0x05, 0x33, 0x2e, 0x30, 0x2e, 0x31, 0x1a, 0x05, 0x31, 0x2e, 0x35, 0x2e, 0x30, 0x22, 0x11, 0x35, 0x41, 0x3a, 0x34, 0x42, 0x3a, 0x35, 0x44, 0x3a, 0x31, 0x33, 0x3a, 0x41, 0x36, 0x3a, 0x46, 0x34
[6/22/2022, 8:29:53 AM] [homebridge-i6-bigassfans] dblog cluing(5/6) Family Room - code watch - s: 0x18, 0xc0, m: 0xbe, 0x01
[6/22/2022, 8:29:53 AM] [homebridge-i6-bigassfans] dblog cluing(3/6) Family Room - mystery property value: 0xe2, 0x09 changed from: 0x07, 0x08, 0x92, 0x29, 0x10, 0x07, 0x20, 0x02, to: 0x07, 0x08, 0x93, 0x29, 0x10, 0x07, 0x20, 0x02

First, can you install<EMAIL_ADDRESS>Then with the same debug log settings as before, restart homebridge, and making a note of the time for each action so we can identify the action in the logs...

[ ] turn the uplight off if it's on or on if it's off,
[ ] change its brightness,
[ ] change its color temperature
[ ] change its color,

and post the output.
Thanks for your patience.

Uplight On
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:07:20 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
Uplight Off
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:07:48 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 3, mystery number: 24384
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 6, mystery string: GMT5:00:00GMT4:00:00,M03.02.00/02:00:00,M11.01.00/02:00:00
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 9, mystery string: 32b5a97c-a45b-478f-92f3-076b17668b17
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 118, mystery number: 0
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 13, mystery string: 4
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(1/6) Family Room - fell into default, field 171 message with subfield: "2"
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 14, mystery number: 0
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 15, mystery number: 24
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 153, mystery number: 1
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 156, mystery string:�:
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 37, mystery string: 1050-46-50
[6/23/2022, 9:07:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 151, mystery number: 1
Brightness change
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 3, mystery number: 24384
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 6, mystery string: GMT5:00:00GMT4:00:00,M03.02.00/02:00:00,M11.01.00/02:00:00
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 9, mystery string: 32b5a97c-a45b-478f-92f3-076b17668b17
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 118, mystery number: 0
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 13, mystery string: 4
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(1/6) Family Room - fell into default, field 171 message with subfield: "2"
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 14, mystery number: 0
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 15, mystery number: 24
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 153, mystery number: 1
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 156, mystery string:�:
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 37, mystery string: 1050-46-50
[6/23/2022, 9:09:53 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 151, mystery number: 1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:09:56 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:10:03 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
Bright White
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:09:02 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
Soft White
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/23/2022, 9:09:07 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0

change its color
Not supported on my model, only the UV-C optional kit has this.

Also to note. The light supports uplight only/downlight only or both controls.

I may be going down the wrong path with the 'cluing' logs but eventually it'll end.
Can you do a similar thing, but just switch from uplight to downlight to both, no need for on/off or brightness changes.  I'm hoping to see one of those mystery fields change.

Uplight Only On
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 2
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/27/2022, 12:01:29 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
Downlight Only On
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 1
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/27/2022, 12:00:51 PM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0
Both On
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 72, mystery number: 1
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 76, mystery string: now
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 82, mystery number: 0
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 83, mystery string:
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 172, mystery number: 1
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 174, mystery number: 3600000
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 173, mystery number: -1
[6/27/2022, 11:59:14 AM] [homebridge-i6-bigassfans] dblog cluing(6/6) Family Room - field 175, mystery number: 0

Looking good.
As it stands, does the plugin operate either or both of your lights based on uplight only/downlight only or both control in the app and/or remote?
What's that control look like?  Is it a three-way switch or maybe a pulldown menu?

Pressing the light button will turn whichever mode was used last. Pressing and holding the light button for about 3 seconds will switch between modes up/down/both.

The app allows you to manually select each mode.

Can you operate either of up/downlights with the homebridge plugin/homekit or does the fan ignore it when you try?

The fan ignores the light commands it seem but the fan speeds work.

Sorry for the delay. I will get the logs emailed to you tonight or tomorrow.

No problem.  I don’t mind.

On Jul 6, 2022, at 1:37 PM, Emotive9 @.***> wrote:
Sorry for the delay. I will get the logs emailed to you tonight or tomorrow.
—
Reply to this email directly, view it on GitHub https://github.com/oogje/homebridge-i6-bigAssFans/issues/10#issuecomment-1176499967, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKLWWFUS6POHJYQUNO4CRDVSW75ZANCNFSM5ZGRVY2Q.
You are receiving this because you commented.

I received your email.  Thank you.

I assume when either of your up or down lights is on, the HomeKit app shows the light as on.  And if both your lights are off, HomeKit shows the light as off.  Is that correct?

Currently the light tile does not seem to control the light.

Indeed. But does HomeKit show the changes when you control the light from the remote?

Oh, no. It stays dark like I never hit it. Another oddity is there are 2 fan icons but only one controls the fan.

Just to make sure I understand, you turn on the light with the remote control and the physical light goes on and the light’s state changes in the Big Ass Fans app, but in the Home app the light doesn’t change state?

Correct. I was never able to see the light changes or control them through homekit.

Ok.  Here's where we stand.  I don't know why the plugin/HomeKit/Home app isn't indicating when at least one of the lights is on.  As far as I can tell, your fan is reporting light status just like the other models but it has an additional field to indicate which light (up, down or both) it's talking about. So if either light is on, the Home app should indicate that.  At this stage of the game we don't need to figure out why the Home app doesn't control your lights because it doesn't even show your light(s) status.  If we find the cause of that problem then the control issue will probably fall into place.
I don't know why you see two fans, I haven't seen that happen before.
I used the most recent logs you sent me to simulate your fan and I don't see any problem.  When I pass the messages your fan sent into my simulation the light turns on (to 47% brightness) when you you indicate you turned on both lights.
But I don't have your fan's message from the start of the session (where it reports that it's an es6, etc) so maybe something interesting is happening there that I don't see.
There are bunch of things to do if you have the patience.
It would be useful if you can get back to a clean slate, remove the plugin, clear your cache, install the latest beta<EMAIL_ADDRESS>and before you start up set the debugLevels to:
 "debugLevels": [
  ["light", 2],
  ["cluing", 6],
  ["redflags", 1],
  ["newcode", 1],
  [“network”, 11],
  ["characteristics", 1]
]

Then, with the remote control or the BAF app flip a light on and off of off and on and email me everything marked 'BigAssFans-i6' from the log.
Thanks.

I've updated to the latest beta, removed the fan from the config, cleared the cache (the fan was in there twice), restarted and added the fan back. I now see the light control reflects what I do on the fan and can also control the light from the homekit app. Using homekit control sets both up and downlight.
Logs have been emailed. Thanks!

Excellent.  Now we can figure out how to implement the light selection control.   I need to experiment with some ideas to see what's even possible given my understanding of homebridge.
Does the Home app honor the selection you make with the BAF app or does it affect both lights no matter what you have previously selected with the BAF app?

By the way, I don't see the text from the initial setup and then where your fan reports its model (product type) and firmware nor the data stream the would have preceded it.   I would expect it to be closer to the beginning of the file before you turned the light on.  Maybe you could just mail me the entire log file?

I received the start logs.  Thank you!

New logs sent.
If I change the uplight or downlight only homekit will control the last used light.

I've published<EMAIL_ADDRESS>which tries to handle multiple lights.  It works by creating two lights rather than an up/down/both switch (I don't know how to make a 3-way switch control).
You should clear the homebridge-i6-bigassfan's accessory cache as this version renames the downlight internally.
On start there will be only one light but when the fan sends a message indicating there is an additional light, that light will be created.
When I feed your log output to my simulator it seems to work, so I have some confidence the Home app will display the state of your lights correctly.  Having said that, in my testing sometimes there's a delay in the Home app's updating the uplight status on some devices - not always the same ones.  You might even have to refresh the Home app by leaving it and coming back to it.  Viewing accessories with the Homebridge UI plug doesn't have this issue, nor does the Home app on my Mac (which is on ethernet).   I don't know if it's my home wireless network or what.  If you experience the refresh issue we'll look into if and when everything else is working as it should.
Finally, I have no way of testing how your fan's light respond when you change states from the Home app.  I took a guess how to make that work.

Just tested and everything works fine. Each light can be controlled and I have not noticed any delay in the status updates. Thanks for all your help with this.

That’s great. Thanks for sticking with it.


feat: add remove-logs functionality

Description
Detailed description of proposed changes
Related Issue(s)
Closes #
Checklist:

[ ] Read the contributing docs (if this is your first contribution)

[ ] Verified this is not a duplicate of any existing pull request

[ ] Performed a self-review of the code

[ ] Rebased to the last commit of the target branch (or merged it into my branch)

[ ] Linked the issues which this PR resolves

[ ] Documented the changes in code (API docs will be generated automatically)

sorry for delay, internet connection

I have removed the console.log from all the client base manually, i wanted to use a script to make it automatic (@Ndifreke000
chore(client): remove all console.log statements from client codebase
0733e74) but it seems to be having issues, i will just remove the script so this can be merged, maybe the script part will be future recommendations.