TrainDatasets vs. TrainingDataset and TestData

Description of changes:
The datasets provided by GluonTS come in the form of TrainDatasets. Recently (starting with #2223), TrainingDataset and TestData were introduced.
Bridging the gap is a bit tedious as we have to do something like this:
dataset = get_dataset("electricity")

prediction_length = dataset.metadata.prediction_length

training_dataset = split(dataset.train, offset=-prediction_length)[0]
test_dataset = split(dataset.test, offset=-prediction_length)[1].generate_instances(prediction_length=prediction_length)

To at least make the translation from TrainDatasets to TestData easier, maybe something like from_TrainDatasets (see commit) can be useful because TrainDatasets always split by an offset of prediction_length.
I'm not super convinced of this myself as it entangles the two approaches more rather than leading to clarity. But maybe this can start a discussion of how training and test data should be dealt with in the future.
Is the plan to switch entirely to the new way eventually?
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Please tag this pr with at least one of these labels to make our release process faster: BREAKING, new feature, bug fix, other change, dev setup

I'm thinking, the class introduced in #2223 (currently TrainingDataset) could be called something more general since it could contain data to be used e.g. for validation rather than training. It's really a SlicedDataset or a DatasetSplit or something like that?

That's a good point because in the end, it's nothing more than another Dataset (the Protocol) that has the last few values omitted. I like DatasetSplit. This would lead to the following changes:

TrainigDataset -> DatasetSplit
generate_training_entries -> generate_entry_splits
training_entry -> split_entry (This is especially nice as it implies an action.)

The "test" in TestData, test_pairshould be okay to stay.

Here's another thought: Currently, the (Offset/Date)Splitter does two things at once:

dividing the datasets into two parts ("training part" and "testing part")
dividing the "testing part" into "input" and "label"

Maybe it makes sense to separate these two actions to give the user more control?
Then, we would allow for usage like this:

Split the dataset into "training" and "other"
Split "other" into "validation" and "testing"
Split entries in "testing" into "input" and "label" parts

generate_training_entries -> generate_entry_splits
training_entry -> split_entry (This is especially nice as it implies an action.)

I think the former could be generate_split_entries which would align with the latter

Reworking the provided datasets is something I also want see happening!
In my view we should probably store most of these datasets without splitting them into train and test. Instead, we can then create "scenarios", concrete splitting of the data into train/test, which we can materialise if we want to.
I guess some of these datasets have some scenarios attached to them, that is there is a canonical way to use them for benchmarking.

For most other datasets, the amount of test entries is usually larger than the amount of training entries.

Could it be that we just slice multiple examples out of a given input time series?


Fix VR compilation

For some reason the ini setting is nullptr in VR. I checked the strings and addresses in commonlib and it should be accessible, but I figured this should be enough.

I checked the offsets but wasn't able to force DR in my setup. When you release, you should just mention it's untested to see if there's feedback.

Oh, I get it, you have a check too on whether the setting is enabled so you enable it. Ok I've disabled the check and I'm getting some weird ghosting. Probably from the shader.

Ok figured it out. You may want to use RE::GetIniSettings from now on when checking any settings.

Ah strange. Dynamic Resolution works in vanilla VR, so something might be missing.

Just to clarify, I did resolve it and the PR is good to go. You should verify the change on getting settings works in flat rim, but I'd expect so. The comments have some notes you may want to consider mentioning on the VR release.

Thanks, I'll test this soon.


help me

How to read the c: \ \ Windows \ \ System32 \ \ config \ \ system registry information from other computers

Map the drive, access c$, use the tool on that computer. All require admin access.
Or use kape to pull the hive and look at it anywhere.


having a test case id in the test.describe section

It would be nice if you could group different tests and have the common test case id on the test.describe('[123] Test name', () => {})

describe is only group of tests, it not test
if you want to group different test in one i think you need to see test step

I have a test which test different api scenarios on the same page. These are split into different tests but is grouped within a test.descripe as it tests the complete e2e user flow

i understand what you do.
pw describe doesn't report any information about describe after it ending. if nothing reporting - nothing publish to azure.
i recomend you using test with including test steps for each TC from azure


Add names for all SMES and Substations

Description
On some maps, the SMES and Substations don't have names. This makes it harder for the Engineering crew, since they a) can't tell at a glance what section a substation provides for when examining it, and b) makes the Power Monitoring Console much less usefull because there is just a long list with SMESs and Substations without any indication which one is which.
On some maps this is already partially done, for example most Substations on Marathon have a name.
This should include a descriptive name for the "primary" SMESs in Engineering to differentiate them from accidentally unnamed ones.
Reproduction

Go to a Power Monitoring Console on Barratry
Have no clue whats going on

Additional context
Checklist: Check the box when for a given station all Substations and SMES have a name (list from the game files)

[x] Aspid
[x] Bagel
[ ] Barratry
[ ] Box
[ ] Cluster
[ ] Core
[ ] Fland
[ ] Kettle
[ ] Marathon
[ ] Meta
[ ] Omega
[ ] Origin
[ ] Packed
[x] Saltern

also a cool idea using multi on one with panel open to rename it with quick dialog

@daerSeebaer saltern was done already

Kettle is also coming but currently has a PR open on it, so not touching it yet.

#20689
Packed names have been merged now too.

#20411
Origin has also now been update to include infra names.

All PR's relating to this issue have been merged. The only map that has not been updated yet is Core, but as it's been derotated, this issue can be closed.

Great work, thanks to everyone who has contributed!


HOTFIX: Reference 'x86_64' instead of 'amd64' when self-upgrading

Updates the self package's installation logic to use x86_64 as the architecture identifier instead of amd64, following #34

/lgtm


Set non-empty range for indentation diagnostics

I noticed in the byte offsets refactor that we set an empty range for all logical-lines indentation diagnostics.
The downside of an empty range is that the TextEmitter can't draw a carret pointing to the violating code,
which looks odd.
This PR sets location of the violation to the start of the violating line.

Current dependencies on/for this PR:

main

PR #4005   👈

This comment was auto-generated by Graphite.


Removing watermark from scanned documents

Script Title -Script to remove watermark scanned documents
what will change - adding code
Instructions

Create a new folder for your script and file/folder name should be appropriate.
Create a README.md in your folder for program Instructions
add requirements.txt if needed

Please add/delete options that are not relevant.

[x] Adding New Code

Programming Language

[x] Python

Happy Coding,

Can you assign me this? Does it count towards hacktoberfest?

Yes, it will, and it's a good script too but can you brief about what kind of watermark is it?

Basically we use cv2 to remove the watermark from any sort of scanned documents

something like this.. we can remove the watermark which can be useful when an OCR or something is used on the document to extract text

basically removing watermark from such documents, useful if in further steps an OCR is used to read the text

Okay, that's fine. so it's pdf/doc or any other format?

jpg format.. but i can extrapolate to pdf if needed

okay do it for jpg and extend it further using pdf2image for pdfs

It is done


Connection Manager Rewrite

Description
The connection manager written in grpc_utils made incorrect assumptions about how the tonic and tower implementations were written and is not suitable for maintaining multiple connections and ensuring stability.
Completely rewrite this to manage the tonic::Channel for each tonic::Endpoint itself to make a simpler external API and ensure that connection errors are handled correctly. This is performed by using a single worker loop that manages all of the connections and wrapping each connection to inform state to the worker.
Type of change
Please delete options that aren't relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Run up on my US proxy service which is now capable of completing a fresh clean build rather than stalling out on concurrent uploads.
Checklist

[ ] Updated documentation if needed
[ ] Tests added/amended
[ ] bazel test //...  passes locally
[ ] PR is contained in a single commit, using git amend see some docs

This change is

Previously, allada (Nathan (Blaise) Bruer) wrote…
Could you link which implementation it's based on?
I'm going to look to see if maybe we could upstream some changes to reduce our burden of maintenance. My initial search didn't yield much.

https://docs.rs/tower/latest/src/tower/balance/p2c/service.rs.html#32-45

nativelink-util/src/connection_manager.rs line 442 at r5 (raw file):
Previously, adam-singer (Adam Singer) wrote…
I think this should be warn! or error!, is it expected to be noisy?

Because a Channel is cloned, when it terminates all clones will report the error and thus this will be very noisy.  Instead, we log it when it reconnects up in connect_endpoint when it's resolved down to a single reconnection, the issue is that the error message has been lost by that context, so it may be helpful to have this at debug level at times.

Previously, chrisstaite-menlo (Chris Staite) wrote…
Moved pending_channels to passing the channel to the Connection on creation and then passing it back on Connected or Dropped using .take().  The down side is that we don't have visibility of the connection if a transport error happens on one stream first while it's pending in another Connection, however the error should occur again in the other Connection and resolve itself, so I don't see it as an issue.

So, it looks like some of this can be implemented by:
let (channel, tx) = tonic::Channel::balance_channel(1024);
for (index, endpoint) in endpoints.enumerate() {
    for connection in 0..connections {
        let _ = tx.try_send(Change::Insert(index * connections + connection, endpoint));
    }
}

Which will make multiple connections to each Endpoint.
Then we have three issues left:

Limit the number of connections (counting the number of Channels that are in use)
Don't start a new channel while an existing stream is being set up (moving back to available after poll_ready completes)
Reconnect on transport error during the service execution (looks like that is an issue here: https://github.com/hyperium/tonic/blob/eeb3268f71ae5d1107c937392389db63d8f721fb/tonic/src/transport/service/reconnect.rs#L215 in that it simply forwards errors unless they happened during the connection stage)

Just waiting on @adam-singer


Migrate clz, ctz, popcnt, bitrev, is_null, is_invalid on x64 to ISLE.

Along the way this introduces a few new utility bits to the ISLE bindings, e.g. some constructors to do integer arithmetic on constants (I'm surprised we got this far without it!). The bit-twiddling algorithms are, at least to my eye, a bit more legible in this form, but I'm happy to add more comments here if desired since we're making a pass over everything anyway.
Also updated a few stray places I had missed earlier where we can use implicit conversions (the def_inst removals).

One more thought: it might be worthwhile to check that all of the instructions ported here are covered by runtests.

Updated, thanks!

One more thought: it might be worthwhile to check that all of the instructions ported here are covered by runtests.

Yep, I've verified that all of the bitops here are exercised by runtests; they actually caught a few bugs during porting.

@abrown you probably want to take another look at the changes related to CmoveOr before I merge?


fix(map_based_prediction): fix search dist

Signed-off-by: tomoya.kimura<EMAIL_ADDRESS>Description
In map_based_prediction, the searching distance of lanelet is calculated as following.
const double obj_vel = object.kinematics.twist_with_covariance.twist.linear.x;
const double search_dist = horizon * obj_vel + 10.0;

When twist.linear.x is negative, is not calculated correctly, and incorrectly very short predicted_paths are output.
https://user-images.githubusercontent.com/59680180/178973220-bf1664b6-fe98-45db-afc2-cd3fe43e7db5.mp4
I fixed it.

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

I have observed negative velocity is estimated very ofteten
    initial_twist_with_covariance:
      twist:
        linear:
          x: -10.009830929561032
          y: 0.0
          z: 0.0
        angular:
          x: 0.0
          y: 0.0
          z: 0.004013723628217312


Create a test for structured health check conditions when integrations are scaled > 1

Original discussion: https://github.com/apache/camel-k/pull/3977#issuecomment-1398432246

@rinaldodev

Great, thanks! @rinaldodev please, just comment so we can assign this issue to you.

Please assign this one to me :)

This can be closed now.


sasjs job execute issue

for some reason the sasjs job execute command is adding a local filepath to the provided path.
SAS jobs always execute on the server, so wouldn't expect this.
Also, the message says it has been submitted but that can't be correct as in fact it wasn't found:

Putting two forward slashes is the solution
POSIX path conversion: http://www.mingw.org/wiki/Posix_path_conversion

@saadjutt01 we should handle such case

:tada: This issue has been resolved in version 1.18.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add liveness and readiness probes to postgres_exporter

What this PR does / why we need it:
Adds liveness and readiness probes to postgres_exporter
Special notes for your reviewer:
I suggest to keep default values for timeout, retries etc... and make them configurable on a needed basis.

Could you signoff the commit to accept DCO (see failing checks)?

@desaintmartin sure, here you go. I did git commit --amend --signoff && git push -f

/ok-to-test

please revert the changes that removed the test folder

Ouups, the test folder is back in the latest commit.

/lgtm

/approve


[SOP Document] Data Quality

Feedback to be addressed:

•	I’m not sure if you are planning to build out a check catalog that you can put in the README, where you can list specific checks and annotate with some metadata. For example, what are the completeness checks and their applications? Which phenotypes will you be checking for, and will that change over time? I know that you have not yet built out the full program and this comment may be a little premature, but I have found that keeping a catalog of checks and assigning unique names to them really facilitates effective communication with network partners and keeping track of the evolution of the network. There are some references in the text, but not sure if they are placeholders. For example, “Format similar to report proposed by Claire, with drilldown on failed checks and additional context.” --- Is this specific to DQ Dashboard or another set of checks?
•	I did not see any reference or documentation about how thresholds will be set for sites, either individually or as a network, though I may have missed it. The thing that makes data quality in EHR data complex is that many times issues can not be fixed with better ETL, and sometimes the problems reflect a characteristic of the source data. It makes setting thresholds a little challenging. I have also found that running a network DQ program requires adjusting thresholds to tailor to the institution. For example, if a participating institution only has outpatient data, any type of visit distributions requiring inpatient visits will not apply to them. Similarly, community hospitals and academic hospitals may represent data differently and serve disparate populations, which will have implications for phenotypes, follow up, and coding practices at the institutions. If the goal of the DQ reports is to stimulate improvements in data rather than characterizing the source, then more targeted approaches for thresholding will need to be described. It will also be important to determine whether the thresholds will be data driven (e.g., computing outliers based on all-site data) or pre-specified based on standards for the network.
•	As the DQ program matures, you may want to consider documenting the checks, responses, and characteristics of the data. Data quality metadata :) This is not as important when you are starting, but as more people use the data for research, being able to represent DQ issues may be helpful.
•	Finally, it would be helpful to know who the reports are targeted for --- are you building out reports primarily for ETL analysts, research investigators, network leaders, etc? Different audiences have their own set of requirements and nuances, which will be important to take into account both in presentation and in substance.


Add util package with a prune function.

Also move app.v1.container enhancements to be core.v1.container instead.
Signed-off-by: Joe Beda<EMAIL_ADDRESS>

Alex says it is ok verbally.


Person detected doesn't trigger motion sensor

I've enabled motion detection for persons. The Eufy camera sends a push notification with "Person detected" but the motion sensor of the camera doesn't get triggered. The sensor always shows "No Motion".
To Reproduce:
Add a camera and enable "Person detection".
Expected behavior:
Motion sensor gets triggered by "Person detected" notification.
Plugin Config:
        {
            "platform": "EufySecurity",
            "username"<EMAIL_ADDRESS>            "password": "password",
            "ignoreStations": "1234,1235",
            "ignoreDevices": "",
            "enableCamera": false,
            "pollingIntervalMinutes": 30,
            "hkHome": 1,
            "hkAway": 0,
            "hkNight": 3,
            "hkOff": 63,
            "enableDetailedLogging": 0
        },

Screenshots:

Environment:

Plugin Version: v1.0.0-rc.0
Homebridge Version: v1.3.4
Node.js Version: v14.16.1
NPM Version: 7.11.1
Operating System: Raspbian

As an addition I have just activated the motion detection for "All others". Now Eufy app sends two push messages "Motion detected" and "Person detected".
Nevertheless, the motion detector does not trigger in HomeKit.

What is the type of your camera ? If you select DEBUG and restart at very begining of logging you should see a list of device. Can you copy paste the list here ?

It's the Eufy Outdoor Cam Pro (C22).
[19/08/2021, 17:11:52] [EufySecurity] Initializing EufySecurity platform...
[2021-08-19T15:11:52.408Z]  INFO: ef/2903 on v0.3.36: Eufy Security Plugin: enableDetailedLogging on
[2021-08-19T15:11:52.414Z]  INFO: ef/2903 on v0.3.36: Finished initializing Eufy Security Platform
[2021-08-19T15:11:52.574Z] DEBUG: ef/2903 on v0.3.36: Loading accessory from cache: Garage
[2021-08-19T15:11:52.575Z] DEBUG: ef/2903 on v0.3.36: Loading accessory from cache: Garage
[2021-08-19T15:11:52.639Z] DEBUG: ef/2903 on v0.3.36: discoveringDevices
Preparing Advertiser for 'Garage 7F73' using bonjour-hap backend!
[2021-08-19T15:11:52.734Z] DEBUG: ef/2903 on v0.3.36: EufyClient connected true
[2021-08-19T15:11:52.735Z] DEBUG: ef/2903 on v0.3.36: PollingInterval: 30
[2021-08-19T15:11:52.735Z] DEBUG: ef/2903 on v0.3.36: Refresh data from cloud and schedule next refresh.
[2021-08-19T15:12:04.049Z] DEBUG: ef/2903 on v0.3.36: Found Station T8400P2020241BD0 Eingang INDOOR_CAMERA { value: '<IP_ADDRESS>', timestamp:<PHONE_NUMBER>000 }
[2021-08-19T15:12:04.049Z] DEBUG: ef/2903 on v0.3.36: Device ignored
[2021-08-19T15:12:04.050Z] DEBUG: ef/2903 on v0.3.36: Found Station T8410P2021121AE4 Eingang INDOOR_PT_CAMERA { value: '<IP_ADDRESS>', timestamp:<PHONE_NUMBER>000 }
[2021-08-19T15:12:04.050Z] DEBUG: ef/2903 on v0.3.36: Device ignored
[2021-08-19T15:12:04.050Z] DEBUG: ef/2903 on v0.3.36: Found Station T8442P1021210125 Garage INDOOR_OUTDOOR_CAMERA_1080P { value: '<IP_ADDRESS>', timestamp:<PHONE_NUMBER>000 }
[2021-08-19T15:12:04.051Z] DEBUG: ef/2903 on v0.3.36: Found 3 devices.
[2021-08-19T15:12:04.051Z] DEBUG: ef/2903 on v0.3.36: Found device T8400P2020241BD0 Eingang INDOOR_CAMERA
[2021-08-19T15:12:04.052Z] DEBUG: ef/2903 on v0.3.36: Device ignored because station is ignored
[2021-08-19T15:12:04.052Z] DEBUG: ef/2903 on v0.3.36: Found device T8410P2021121AE4 Eingang INDOOR_PT_CAMERA
[2021-08-19T15:12:04.052Z] DEBUG: ef/2903 on v0.3.36: Device ignored because station is ignored
[2021-08-19T15:12:04.052Z] DEBUG: ef/2903 on v0.3.36: Found device T8442P1021210125 Garage INDOOR_OUTDOOR_CAMERA_1080P
[2021-08-19T15:12:04.053Z] DEBUG: ef/2903 on v0.3.36: This device is not a station. Generating a new UUID to avoid any duplicate issue
[2021-08-19T15:12:04.053Z] DEBUG: ef/2903 on v0.3.36: Garage UUID: c13e3d95-f470-43ae-a947-b96b9e6709b4
[2021-08-19T15:12:04.054Z]  WARN: ef/2903 on v0.3.36: Garage looks station but it's not could imply some errors Type: 46
[2021-08-19T15:12:04.054Z] DEBUG: ef/2903 on v0.3.36: Garage Constructed Station
[2021-08-19T15:12:04.055Z]  INFO: ef/2903 on v0.3.36: Restoring existing accessory from cache: Garage
[2021-08-19T15:12:04.109Z] DEBUG: ef/2903 on v0.3.36: Garage UUID: 5620f690-3a99-4779-b271-a2c7a3add533
[2021-08-19T15:12:04.111Z] DEBUG: ef/2903 on v0.3.36: Garage Constructed Camera
[2021-08-19T15:12:04.111Z] DEBUG: ef/2903 on v0.3.36: Garage has a motion sensor.
[2021-08-19T15:12:04.112Z]  WARN: ef/2903 on v0.3.36: Garage Looks like not compatible with hasBattery
[2021-08-19T15:12:04.112Z] DEBUG: ef/2903 on v0.3.36: Garage has a isEnabled, so append switchEnabledService characteristic to him.
[2021-08-19T15:12:04.112Z] DEBUG: ef/2903 on v0.3.36: Garage has a isMotionDetectionEnabled, so append switchMotionService characteristic to him.
[2021-08-19T15:12:04.113Z]  INFO: ef/2903 on v0.3.36: Restoring existing accessory from cache: Garage
[2021-08-19T15:12:10.656Z] DEBUG: ef/2903 on v0.3.36: Garage Property Changes:  --  rtspStreamUrl { value: 'rtsp://<IP_ADDRESS>/live0', timestamp:<PHONE_NUMBER>654 }
[2021-08-19T15:12:10.666Z] DEBUG: ef/2903 on v0.3.36: Handle Station Raw Property Changes:  --  1151 1<PHONE_NUMBER>665
[2021-08-19T15:12:10.667Z] DEBUG: ef/2903 on v0.3.36: Handle Station Property Changes:  --  currentMode { value: 1, timestamp:<PHONE_NUMBER>665 }
[2021-08-19T15:12:10.930Z] DEBUG: ef/2903 on v0.3.36: Garage Triggered GET SecuritySystemCurrentState
[2021-08-19T15:12:10.931Z] DEBUG: ef/2903 on v0.3.36: Connected to Eufy API
[2021-08-19T15:12:10.931Z] DEBUG: ef/2903 on v0.3.36: Eufy Guard Mode:  { value: 1, timestamp:<PHONE_NUMBER>000 }
[2021-08-19T15:12:10.932Z] DEBUG: ef/2903 on v0.3.36: Garage Triggered GET SecuritySystemTargetState
[2021-08-19T15:12:10.932Z] DEBUG: ef/2903 on v0.3.36: Connected to Eufy API
[2021-08-19T15:12:10.932Z] DEBUG: ef/2903 on v0.3.36: Eufy Guard Mode:  { value: 1, timestamp:<PHONE_NUMBER>000 }
[2021-08-19T15:12:10.935Z] DEBUG: ef/2903 on v0.3.36: Garage Triggered GET Enable: true
[2021-08-19T15:12:10.943Z] DEBUG: ef/2903 on v0.3.36: Garage Handle Current System state:  --  0
[2021-08-19T15:12:10.943Z] DEBUG: ef/2903 on v0.3.36: Garage Triggered GET MotionDetected: false
[2021-08-19T15:12:10.943Z] DEBUG: ef/2903 on v0.3.36: Garage Triggered GET Motion: true
[2021-08-19T15:12:20.618Z] DEBUG: ef/2903 on v0.3.36:
    Garage Property Changes:  --  pictureUrl {
      value: 'https://zhixin-security-eu.s3.eu-central-1.amazonaws.com/thumb/2021/08/19/station/T8442P1021210125/YE3PNiDCF7Sbydv8.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJYLV2KOLW6PU4FSA%2F20210819%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210819T151215Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=28549e93a3e6814402c0fb1a3bc6fc984b8ee39e34cad1f614551b89240041d8',
      timestamp:<PHONE_NUMBER>000
    }
[2021-08-19T15:12:21.080Z] DEBUG: ef/2903 on v0.3.36:
    Garage Property Changes:  --  pictureUrl {
      value: 'https://zhixin-security-eu.s3.eu-central-1.amazonaws.com/thumb/2021/08/19/station/T8442P1021210125/YE3PNiDCF7Sbydv8.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJYLV2KOLW6PU4FSA%2F20210819%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210819T151221Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=670dfe49b97c55523fa5ae1856745415032ccb6d70dab79bfc64f6a4f5760e8c',
      timestamp:<PHONE_NUMBER>000
    }
[2021-08-19T15:12:22.393Z] DEBUG: ef/2903 on v0.3.36: Push Connected!

Dep on Bropat Lib : https://github.com/bropat/eufy-security-client/pull/39

Ok got it. I've done the push request to @Bropat waiting his feedback

Perfect! That was fast. Am I able to update via HomeBridge with a beta version 0.3.x?

It's a deep from a lib. I need to wait PR merge before merge as well in our plugin. I keep you posted.

@lenoxys Fix released in eufy-security-client version 1.1.2 ;)

Can you test on 1.0.0-rc.2 ?

It works! Thank you!
One off topic question: do you recommend the camera livestream via this plugin or via RTSP and "Homebridge Camera FFmpeg"?

via plugin for now.
Thanks for your feedback and thanks to @bropat ! I'm closing this issue !

Hey lenoxys,
I've just updated to latest rc 13. But now my indoor and some outdoor cameras are not receiving the notification for person detection anymore. Would try to test with rc2 again but can't select rc2 in Homebridge ui.

Found this line:
[9/11/2021, 3:14:56 PM] [EufySecurity-1.0.0-rc.13] WARN:  Push Closed!

Garage = INDOOR_OUTDOOR_CAMERA_2k
Innen = INDOOR_PT_CAMERA

This one is the same. The log shows correct detection but inside the Home app there is no motion for the sensor.
[9/11/2021, 3:23:01 PM] [EufySecurity-1.0.0-rc.13] DEBUG: Garten Property Changes: personDetected { value: true, timestamp:<PHONE_NUMBER>171 } [9/11/2021, 3:23:01 PM] [EufySecurity-1.0.0-rc.13] DEBUG: Garten Property Changes: personName { value: 'Unknown', timestamp:<PHONE_NUMBER>171 } [9/11/2021, 3:23:01 PM] [EufySecurity-1.0.0-rc.13] DEBUG: Garten Property Changes: pictureUrl {   value: '…',   timestamp:<PHONE_NUMBER>171 } [9/11/2021, 3:23:11 PM] [EufySecurity-1.0.0-rc.13] DEBUG: Garten Property Changes: personDetected { value: false, timestamp:<PHONE_NUMBER>318 } [9/11/2021, 3:23:11 PM] [EufySecurity-1.0.0-rc.13] DEBUG: Garten Property Changes: personName { value: '', timestamp:<PHONE_NUMBER>318 } [9/11/2021, 3:23:11 PM] [EufySecurity-1.0.0-rc.13] DEBUG: Garten ON DeviceMotionDetected: false

Hello,
Did you enable the notification on your apple device ?


Helm - the package manager for kubernetes (k8s)

Package manager: https://helm.sh
Registry: https://hub.helm.sh

Added to the package-managers directory in https://github.com/ipfs/package-managers/commit/e3158c70150ad189b55d1b5a474f28752d92b08e


It appears to be working but I do not see any devices in my home app

It looks like the plugin is running:
Jan 23 15:15:46 Heli-Pi homebridge[21488]: [2019-1-23 15:15:46] Loaded plugin: homebridge-bond
Jan 23 15:15:46 Heli-Pi homebridge[21488]: [2019-1-23 15:15:46] Registering platform 'homebridge-bond.Bond’
my config.json file has:
{
"email"<EMAIL_ADDRESS>"password": “xxxx",
"Living Room": "AJ12XXX",
"platform": "Bond"
}
It looks like its working.  I do not see my devices though, just two ceiling fans. Any ideas?

Anyone have any other ideas?  It looks to be working, but I do not see my fans in the home app.

Run this on your pi, be sure to set user/pass, do you get data?
#!/bin/bash

url='https://appbond.com/api/v1/auth/login/'
user=""
password=""
read -d -s doc <<EOF
{
    "email": "$user",
    "password": "$password"
}
EOF
resp=$(curl -X POST -d "$doc" -H "Content-Type: application/json" $url)
key=$(echo "$resp" | jq -r .key)
curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/

No it appears to have failed:
pi@Heli-Pi:~$ resp=$(curl -X POST -d "$doc" -H "Content-Type: application/json" $url)
key=$(echo "$resp" | jq -r .key)
curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100   178    0   109  100    69    212    134 --:--:-- --:--:-- --:--:--   212
pi@Heli-Pi:~$ key=$(echo "$resp" | jq -r .key)
-bash: jq: command not found
pi@Heli-Pi:~$ curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/
{"detail":"Invalid token header. No credentials provided."}pi@Heli-Pi:~$ curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/
{"detail":"Invalid token header. No credentials provided."}pi@Heli-Pi:~$

aptitude install jq
Then rerun

Thanks did that.  I stopped and started my homebridge.  I still don't see my fans, should I remove my homebridge and re-add it to home?

Well, I wanted to see the out of that script.  It is not intended to fix your homebridge setup, just show how your devices are being reported by the bond api.
What does the output look like>

That was the output.

Oh, I missed the invalid toke.  You need to set your bond user, pass on lines 4 and 5

I didn't realize I had to put it in twice:
pi@Heli-Pi:/var/homebridge/.homebridge$ resp=$(curl -X POST -d "$doc" -H "Content-Type: application/json" $url)
key=$(echo "$resp" | jq -r .key)
curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100   174    0   109  100    65    148     88 --:--:-- --:--:-- --:--:--   148
pi@Heli-Pi:/var/homebridge/.homebridge$ key=$(echo "$resp" | jq -r .key)
pi@Heli-Pi:/var/homebridge/.homebridge$ curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/

Since the recent bond firmware release, I'm also not able to control my fan/light that previously worked. Upon reviewing the logs, it's showing an error timed out. See here:
homebridge_1  | [3/6/2019, 7:57:47 AM] [Bond] { RequestError: Error: connect ETIMEDOUT <IP_ADDRESS>:4433
homebridge_1  |     at new RequestError (/homebridge/node_modules/request-promise-core/lib/errors.js:14:15)
homebridge_1  |     at Request.plumbing.callback (/homebridge/node_modules/request-promise-core/lib/plumbing.js:87:29)
homebridge_1  |     at Request.RP$callback [as _callback] (/homebridge/node_modules/request-promise-core/lib/plumbing.js:46:31)
homebridge_1  |     at self.callback (/homebridge/node_modules/request/request.js:185:22)
homebridge_1  |     at Request.emit (events.js:189:13)
homebridge_1  |     at Request.onRequestError (/homebridge/node_modules/request/request.js:881:8)
homebridge_1  |     at ClientRequest.emit (events.js:189:13)
homebridge_1  |     at TLSSocket.socketErrorListener (_http_client.js:392:9)
homebridge_1  |     at TLSSocket.emit (events.js:189:13)
homebridge_1  |     at emitErrorNT (internal/streams/destroy.js:82:8)
homebridge_1  |     at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
homebridge_1  |     at process._tickCallback (internal/process/next_tick.js:63:19)
homebridge_1  |   name: 'RequestError',
homebridge_1  |   message: 'Error: connect ETIMEDOUT <IP_ADDRESS>:4433',
homebridge_1  |   cause:
homebridge_1  |    { Error: connect ETIMEDOUT <IP_ADDRESS>:4433
homebridge_1  |        at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1104:14)
homebridge_1  |      errno: 'ETIMEDOUT',
homebridge_1  |      code: 'ETIMEDOUT',
homebridge_1  |      syscall: 'connect',
homebridge_1  |      address: '<IP_ADDRESS>',
homebridge_1  |      port: 4433 },
homebridge_1  |   error:
homebridge_1  |    { Error: connect ETIMEDOUT <IP_ADDRESS>:4433
homebridge_1  |        at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1104:14)
homebridge_1  |      errno: 'ETIMEDOUT',
homebridge_1  |      code: 'ETIMEDOUT',
homebridge_1  |      syscall: 'connect',
homebridge_1  |      address: '<IP_ADDRESS>',
homebridge_1  |      port: 4433 },
homebridge_1  |   options:
homebridge_1  |    { method: 'GET',
homebridge_1  |      uri:
homebridge_1  |       'https://BD26647.local:4433/api/v1/device/0/device_property/1/device_property_command/54/run',
homebridge_1  |      rejectUnauthorized: false,
homebridge_1  |      headers:
homebridge_1  |       { 'X-Token':
homebridge_1  |          '2562950a92b4d1a6150af66b272da1a52879f8f1a053dc910bd7f4e34710d5e7',
homebridge_1  |         'X-Sequence': 1,
homebridge_1  |         'X-BondDate': '2019-03-06T07:55:35Z' },
homebridge_1  |      callback: [Function: RP$callback],
homebridge_1  |      transform: undefined,
homebridge_1  |      simple: true,
homebridge_1  |      resolveWithFullResponse: false,
homebridge_1  |      transform2xxOnly: false },
homebridge_1  |   response: undefined }
Would greatly appreciate any help.

Since the recent bond firmware release, I'm also not able to control my fan/light that previously worked. Upon reviewing the logs, it's showing an error timed out. See here:
homebridge_1 | [3/6/2019, 7:57:47 AM] [Bond] { RequestError: Error: connect ETIMEDOUT <IP_ADDRESS>:4433
homebridge_1 | at new RequestError (/homebridge/node_modules/request-promise-core/lib/errors.js:14:15)
homebridge_1 | at Request.plumbing.callback (/homebridge/node_modules/request-promise-core/lib/plumbing.js:87:29)
homebridge_1 | at Request.RP$callback [as _callback] (/homebridge/node_modules/request-promise-core/lib/plumbing.js:46:31)
homebridge_1 | at self.callback (/homebridge/node_modules/request/request.js:185:22)
homebridge_1 | at Request.emit (events.js:189:13)
homebridge_1 | at Request.onRequestError (/homebridge/node_modules/request/request.js:881:8)
homebridge_1 | at ClientRequest.emit (events.js:189:13)
homebridge_1 | at TLSSocket.socketErrorListener (_http_client.js:392:9)
homebridge_1 | at TLSSocket.emit (events.js:189:13)
homebridge_1 | at emitErrorNT (internal/streams/destroy.js:82:8)
homebridge_1 | at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
homebridge_1 | at process._tickCallback (internal/process/next_tick.js:63:19)
homebridge_1 | name: 'RequestError',
homebridge_1 | message: 'Error: connect ETIMEDOUT <IP_ADDRESS>:4433',
homebridge_1 | cause:
homebridge_1 | { Error: connect ETIMEDOUT <IP_ADDRESS>:4433
homebridge_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1104:14)
homebridge_1 | errno: 'ETIMEDOUT',
homebridge_1 | code: 'ETIMEDOUT',
homebridge_1 | syscall: 'connect',
homebridge_1 | address: '<IP_ADDRESS>',
homebridge_1 | port: 4433 },
homebridge_1 | error:
homebridge_1 | { Error: connect ETIMEDOUT <IP_ADDRESS>:4433
homebridge_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1104:14)
homebridge_1 | errno: 'ETIMEDOUT',
homebridge_1 | code: 'ETIMEDOUT',
homebridge_1 | syscall: 'connect',
homebridge_1 | address: '<IP_ADDRESS>',
homebridge_1 | port: 4433 },
homebridge_1 | options:
homebridge_1 | { method: 'GET',
homebridge_1 | uri:
homebridge_1 | 'https://BD26647.local:4433/api/v1/device/0/device_property/1/device_property_command/54/run',
homebridge_1 | rejectUnauthorized: false,
homebridge_1 | headers:
homebridge_1 | { 'X-Token':
homebridge_1 | '2562950a92b4d1a6150af66b272da1a52879f8f1a053dc910bd7f4e34710d5e7',
homebridge_1 | 'X-Sequence': 1,
homebridge_1 | 'X-BondDate': '2019-03-06T07:55:35Z' },
homebridge_1 | callback: [Function: RP$callback],
homebridge_1 | transform: undefined,
homebridge_1 | simple: true,
homebridge_1 | resolveWithFullResponse: false,
homebridge_1 | transform2xxOnly: false },
homebridge_1 | response: undefined }
Would greatly appreciate any help.

Bounce your bond, I just upgraded and 1 of my 2 was not happy until I power cycled it

I wish that were the case 😔 I've tried to power cycle, reset the wifi on the bond, re-add the bond to my wifi, remove and re-add the fans/lights and also completely reinstall homebridge with the plugin as the only accessory. I'm completely stumped 🤷🏻♂

I didn't realize I had to put it in twice:
pi@Heli-Pi:/var/homebridge/.homebridge$ resp=$(curl -X POST -d "$doc" -H "Content-Type: application/json" $url)
key=$(echo "$resp" | jq -r .key)
curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 174 0 109 100 65 148 88 --:--:-- --:--:-- --:--:-- 148
pi@Heli-Pi:/var/homebridge/.homebridge$ key=$(echo "$resp" | jq -r .key)
pi@Heli-Pi:/var/homebridge/.homebridge$ curl -H "Authorization: Token $key"
I still don’t see a json document, let’s try this:
curl
https://raw.githubusercontent.com/plainsane/scripts/master/testBond.sh
chmod +x testBond.sh

Now edit that file and change username/pass on lines 4/5
Then run it with
./testBond.sh

I wish that were the case 😔 I've tried to power cycle, reset the wifi on the bond, re-add the bond to my wifi, remove and re-add the fans/lights and also completely reinstall homebridge with the plugin as the only accessory. I'm completely stumped 🤷🏻♂
To be clear also, the Fans/light work perfectly in the dedicated Bond app.

So I’m pretty sure it relies on the bonjour protocol to resolve the dns name of you bond device that is on your local network...you must be getting a stale ip.  What version of nodejs are you running?

Currently running 10.15.2.

I also agree its translating to a stale IP because as soon as I activate the fan in homebridge I get a constant spinning wheel.

This is the output I get:
pi@Heli-Pi:/var/homebridge$ resp=$(curl -X POST -d "$doc" -H "Content-Type: application/json" $url)
key=$(echo "$resp" | jq -r .key)
curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100   174    0   109  100    65    156     93 --:--:-- --:--:-- --:--:--   156
pi@Heli-Pi:/var/homebridge$ key=$(echo "$resp" | jq -r .key)
pi@Heli-Pi:/var/homebridge$ curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/

Then I guess the user/password is incorrect.  Do you have the proper account cress?

This is the output I get:
pi@Heli-Pi:/var/homebridge$ resp=$(curl -X POST -d "$doc" -H "Content-Type: application/json" $url)
key=$(echo "$resp" | jq -r .key)
curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/ % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 174 0 109 100 65 156 93 --:--:-- --:--:-- --:--:-- 156
pi@Heli-Pi:/var/homebridge$ key=$(echo "$resp" | jq -r .key)
pi@Heli-Pi:/var/homebridge$ curl -H "Authorization: Token $key" https://appbond.com/api/v1/bonds/
and:
pi@Heli-Pi:/var/homebridge$ ./testBond.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 174 0 109 100 65 156 93 --:--:-- --:--:-- --:--:-- 156
{"detail":"Invalid token."}pi@Heli-Pi:/var/homebridge$

Currently running 10.15.2.

Try bouncing avahi
sudo systemctl restart avahi-daemon

Yes I have the correct username and password.

Like @sofakingcopter, the user/password are correct. I have confirmed this various ways, including running the Bond app on iOS. Something may have changed in the Bond API that was pushed in their latest firmware and the original code is no longer valid.

Like @sofakingcopter, the user/password are correct. I have confirmed this various ways, including running the Bond app on iOS. Something may have changed in the Bond API that was pushed in their latest firmware and the original code is no longer valid.

Maybe, I have upgraded and it is still working for me, sorry, I’m out of ideas.

To be fair, mine has never worked.  I guess I'm just the lucky one lol.

After the recent Homebridge update, I decided to reinstall the Bond plugin thinking that it might work again, but unfortunately, I'm still receiving the following error in the code.

I got mine to identify the ceiling fan, but when I try any of the "actions", I get
[4/13/2019, 6:24:14 PM] [Bond] { StatusCodeError: 404 - "{}\r\n"
    at new StatusCodeError (/usr/local/lib/node_modules/homebridge-bond/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/usr/local/lib/node_modules/homebridge-bond/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/usr/local/lib/node_modules/homebridge-bond/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at Request.self.callback (/usr/local/lib/node_modules/homebridge-bond/node_modules/request/request.js:185:22)
    at Request.emit (events.js:193:13)
    at Request.<anonymous> (/usr/local/lib/node_modules/homebridge-bond/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:193:13)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/homebridge-bond/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:281:20)
    at IncomingMessage.emit (events.js:198:15)
    at endReadableNT (_stream_readable.js:1139:12)
    at processTicksAndRejections (internal/process/task_queues.js:81:17)
  name: 'StatusCodeError',
  statusCode: 404,
  message: '404 - "{}\\r\\n"',
  error: '{}\r\n',

I'm guessing that something in the mapping here points to a non-existent Bond API device? My ceiling fan does not have a variable speed, but rather 0-1-2-3, maybe that's the problem? I was not given any options though upon initializing the Bond device in my HomeBridge / Kit.
Any thoughts?

Closing this as it is no longer applicable with v2 API.

I’m still having the same issue with the new version.

On Sep 26, 2019, at 7:06 PM, Aaron Sapp<EMAIL_ADDRESS>wrote:
Closing this as it is no longer applicable with v2 API.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/aarons22/homebridge-bond/issues/13?email_source=notifications&email_token=ALIDWYLZ6YQSWVJE23A5FJDQLVTB5A5CNFSM4GTOBI7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7XPFNQ#issuecomment-535753398, or mute the thread https://github.com/notifications/unsubscribe-auth/ALIDWYJ4IDPTVV3RBKS4TOTQLVTB5ANCNFSM4GTOBI7A.

Can you run this command in terminal with your IP and token and let me know what you see?
curl -H "BOND-Token: f074b61f628018fd" -i http://<IP_ADDRESS>/v2/devices

@sofakingcopter did you follow the v1 to v2 upgrade guide? Your config needs to change as well from v1. If you’re using the homebridge docker container from oznu there’s a thread on here with some additional steps you need to take.

I was unaware of any upgrade guide.  I did a clean install, as I could not get the old plugin working ever, it would crash my home bridge.  Did a clean install of home bridge and I just added the new plug int.  It looks like its working but I do not see my devices in home app.  I ran the command and this is what I got:
pi@Heli-Pi:~/.homebridge$ curl -H "BOND-Token: b0885b521abc0542" -i http://<IP_ADDRESS>/v2/devices
HTTP/1.1 200 OK
Content-Length: 18
Content-Type: application/json; charset=utf-8
{"_":"de432dc6"}
pi@Heli-Pi:~/.homebridge$

Yeah that’s telling me no devices are showing up in the API, so you’re not going to see anything in the plugin. If you are seeing devices in the Bond Home app, you might want to reach out to Bond support because that sounds any issue on that end

I am having the same issue.  I am not sure why you said no devices are showing after running the curl command.  sofakingcopter's device is {"":"de432dc6"}.  I receive a similar response with the command, but I get {"":"63b8bea7","1":{"_":"d5c14568"}}
In my case it is two devices (one is the llight and the other one is the fan).  The home bridge plugin seems to be run successfully, but it says "0 devices loaded".

Thanks for the help but I really wouldn’t know what to ask support for. My
app and BOND work great. I just can’t get them to work with Homebridge.
On Wed, Oct 2, 2019 at 9:46 AM KCFT23<EMAIL_ADDRESS>wrote:

I am having the same issue. I am not sure why you said no devices are
showing after running the curl command. sofakingcopter's device is {"":"de432dc6"}.
I receive a similar response with the command, but I get {"
":"63b8bea7","1":{"_":"d5c14568"}}
In my case it is two devices (one is the llight and the other one is the
fan). The home bridge plugin seems to be run successfully, but it says "0
devices loaded".
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aarons22/homebridge-bond/issues/13?email_source=notifications&email_token=ALIDWYOXDNUORMGDUMZZBWDQMTF5LA5CNFSM4GTOBI7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAFNI4Q#issuecomment-537580658,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALIDWYPPQ654JDKDBA7AQ3TQMTF5LANCNFSM4GTOBI7A
.

--
sent with Peace and Love!

To be clear, I was only implying that the API was not functioning correctly. I'll quickly explain what the API response means. Looking at this response:
{
  "_": "bde50a34",
  "00000003": {
    "_": "b28a5c82"
  },
  "00000018": {
    "_": "e7cd6d8e"
  },
  "1b8d06c6": {
    "_": "23a40915"
  },
  "38b3b9ca": {
    "_": "afee19c7"
  }
}

00000003, 00000018, 1b8d06c6 and 38b3b9ca are the different device ids on this Bond. The first object in the response ("_": "bde50a34") is related to the bond itself and doesn't mean anything to the plugin.
Another suggestion would be to re-create the device in the new Bond Home app. That would hopefully get it to show up in the API response.
I'm also happy to take any PRs! I can't replicate the issue on my end so it's difficult to debug it.

If it helps, bond support gave me this link in the past for resetting the bond and reconnecting it to your network. All your devices that it learned should return, I didn’t have to start over. Might be worth a shot to do that. The app also updates you to the latest firmware on the Bond. Make sure you’re using the “new” Bond Home app, not the old one from v1.
https://olibra.zendesk.com/hc/en-us/articles/115002787731-bond-bridge-How-to-connect-to-a-new-WiFI-network-using-the-Green-WiFi-Reset

Ok, thanks.  So according to your explanation, in my response my device is "1", correct?
{
"":    "63b8bea7",
"1":    {
"":   "d5c14568"
}
}
Why does the homebridge plugin not find my device?  FYI, my fan is new (one of those fans with the integrated BOND) and I am running the new Bond app.  Everything works well from the app, and I can also send commands from Terminal in my computer using the API.
Thanks again.

To be clear, I was only implying that the API was not functioning correctly. I'll quickly explain what the API response means. Looking at this response:
{
  "_": "bde50a34",
  "00000003": {
    "_": "b28a5c82"
  },
  "00000018": {
    "_": "e7cd6d8e"
  },
  "1b8d06c6": {
    "_": "23a40915"
  },
  "38b3b9ca": {
    "_": "afee19c7"
  }
}

00000003, 00000018, 1b8d06c6 and 38b3b9ca are the different device ids on this Bond. The first object in the response ("_": "bde50a34") is related to the bond itself and doesn't mean anything to the plugin.
Another suggestion would be to re-create the device in the new Bond Home app. That would hopefully get it to show up in the API response.
I'm also happy to take any PRs! I can't replicate the issue on my end so it's difficult to debug it.

one of those fans with the integrated BOND

Oh interesting, I didn't even think about that being a factor. I'm wondering if the API behaves differently for those devices. Can you add "debug": true to your Bond platform config (assuming you're on 2.1.2)? That'll print out all of the API requests and responses, which should help diagnose what's happening

@KCFT23 can you post your config.json? At least the relevant section to the bond plugin.

@KCFT23 can you post your config.json? At least the relevant section to the bond plugin.

"platforms": [
{
"platform": "Bond",
"bond_ip_address": "192.168.1.XXX",
"bond_token": "XYZxyzXYZxyz"
}

Ok, here are the results of adding "debug": true...
[10/2/2019, 2:48:51 PM] [Bond] 0 cached accessories were loaded
[10/2/2019, 2:48:51 PM] [Bond] Getting devices...
[10/2/2019, 2:48:51 PM] [Bond] DEBUG: Request [GET http://<IP_ADDRESS>XXX/v2/devices] - body: {}
[10/2/2019, 2:48:51 PM] Homebridge is running on port 518XX.
[10/2/2019, 2:48:51 PM] [Bond] DEBUG: Response [GET http://192.168.1.XXX/v2/devices] - {"1":{"":"d5c14568"},"":"63b8bea7"}
[10/2/2019, 2:48:51 PM] [Bond] 0 devices were found on this Bond.
[10/2/2019, 2:48:51 PM] [Bond] Attempting to add 0 devices that were not previously added.

Ohhhh man, I see the issue. In an attempt to ignore that first object ("_"), I was checking the length of the key to make sure it was at least 2 characters, which is ignoring your device. I just fixed it in 2.1.3, so please update to the latest version and let me know!

Awesome!  I will test is as soon as I get home.  Thanks!!!

Some progress, please see debug log below.  Now it finds one device!  However, the request for commands fails - it results in an empty response.  I verified and this is the case from the terminal/API too.  It results in a "404 Not Found" error.  However, if I run the curl with http://192.168.1.XXX/v2/devices/1/ and exclude the "commands", then I get the right response:
{"name":"Office Fan","location":"Office","type":"CF","actions":["TurnOn","TurnOff","TogglePower","SetSpeed","IncreaseSpeed","DecreaseSpeed","TurnLightOn","TurnLightOff","ToggleLight","SetBrightness","IncreaseBrightness","DecreaseBrightness","CycleBrightness","SetTimer","BreezeOn","BreezeOff","SetBreeze","SetDirection","ToggleDirection"],"":"XXXXX","state":{"":"YYYYY"},"properties":{"_":"ZZZZZ"}}
Is this something you can accommodate in the plugin?  Maybe "If Device < 10 then use the curl http://192.168.1.XXX/v2/devices// and skip the "commands" at the end?  Thanks!
[10/2/2019, 9:20:12 PM] [Bond] 0 cached accessories were loaded
[10/2/2019, 9:20:12 PM] [Bond] Getting devices...
[10/2/2019, 9:20:12 PM] [Bond] DEBUG: Request [GET http://192.168.1.XXX/v2/devices] - body: {}
[10/2/2019, 9:20:12 PM] Homebridge is running on port 518XX.
[10/2/2019, 9:20:12 PM] [Bond] DEBUG: Response [GET http://192.168.1.XXX/v2/devices] - {"1":{"":"XXXXXX"},"":"YYYYYY"}
[10/2/2019, 9:20:12 PM] [Bond] 1 devices were found on this Bond.
[10/2/2019, 9:20:12 PM] [Bond] Attempting to add 1 devices that were not previously added.
[10/2/2019, 9:20:12 PM] [Bond] DEBUG: Request [GET http://192.168.1.XXX/v2/devices/1/commands] - body: {}
[10/2/2019, 9:20:12 PM] [Bond] DEBUG: Response [GET http://192.168.1.XXX/v2/devices/1/commands]
[10/2/2019, 9:20:12 PM] [Bond] Error getting devices: TypeError: Cannot convert undefined or null to object

Interesting that it is failing. The commands request is what I use to determine the number of speeds available. Here's an example speed command:
{
  "name": "Speed 2",
  "action": "SetSpeed",
  "argument": 2,
  "button_type": "tap",
  "category_name": "Fan",
  "feedback": "state.power==1 and state.speed==2",
  "icon": "speed_2",
  "hidden": false,
  "_": "198754ea",
  "signal": {
    "_": "dd3f678b"
  },
  "tx": {
    "_": "45753734"
  }
}

The argument is the value I need to pass along to the setSpeed action. (What you have stumbled on is the Device Info API)
I just looked at the API docs again and found the Properties endpoint, which provides a max_speed. Using that makes the assumption the user started with speed 1 and sequentially moved up (which would break if a fan had speeds of 1 / 3 / 5), but I suppose I could use that as a fallback if the commands request fails... I need to think on that.
I'm really curious as to why the commands request fails when it's clearly documented. Might be worth posting in the Bond forum to see what they say.

Yes, I am also puzzled.  It should work according to the documentation.  I just looked to see if there were any firmware updates and sure enough, there was one.  However, updating the firmware did not fix the commands issue.  I will post in the BOND forum to alert them about this issue.
I can confirm that the using the curl with http://192.168.1.XXX/v2/devices/1/properties works fine and I can see the correct max speed of my fan.
Thanks again.

I just upgraded mine and still no accessories.  I"m going to try and re-add one of them.

I just upgraded mine and still no accessories. I"m going to try and re-add one of them.

Yes, that is a good idea.  If that doesn't work, you may want to try something I found in my quest for information about this.  I stumbled with posts from others that seem to have exactly the same issue as you.  They suggest adding a new "device", but this time instead of adding the device use the "remote control" option in the app and make the BOND learn the remote buttons one by one.  Good luck!

It worked!!  I added it as new just like you said and I can see one fan now. Now I"m franticly teaching my house for a 9volt battery to re-add the other fan.

@sofakingcopter great to hear! can we consider this issue closed?
@KCFT23 - keep me posted on what you learn in the Bond forum. Feel free to open another issue when there are any changes

No luck yet with the Bond forum.  However, I have confirmed my Device is missing the "commands".  You can see it here:
{“name”:“Office Fan”,“location”:“Office”,“type”:“CF”,“actions”:[“TurnOn”,“TurnOff”,“TogglePower”,“SetSpeed”,“IncreaseSpeed”,“DecreaseSpeed”,“TurnLightOn”,“TurnLightOff”,“ToggleLight”,“SetBrightness”,“IncreaseBrightness”,“DecreaseBrightness”,“CycleBrightness”,“SetTimer”,“BreezeOn”,“BreezeOff”,“SetBreeze”,“SetDirection”,“ToggleDirection”],"":“XXXXXXXX”,“state”:{"":“YYYYYYY”},“properties”:{"":“ZZZZZZZ”},“addr”:{"":“AAAAAAA”}}
There is actions, properties, state, etc., but no "commands".

Ahh good point. That could be used to determine if the commands request should be made in the first place

Ahh good point. That could be used to determine if the commands request should be made in the first place

Yes.  Now someone in the bond forum verified: the API states "Commands are only present in bridge devices".  So it is normal that a device like mine (and all the Smart by Bond devices) do not have "commands".  It would be great if the plug-in can take this into consideration.
Thanks again!

@KCFT23 glad we were able to clear that up. I'm closing this issue but have opened a new one for your specific use case: https://github.com/aarons22/homebridge-bond/issues/34


Catching Errors in jasmine.getAllSpecFiles

The situation:
When I am currently editing a js file within a project in my text editor, the editor creates a temporary backup file (along the lines of .#jsonrpc_backend.js.
When I attempt to run the tests without saving the file, jasmine-node bombs out with an error [1].
This is because fs.statSync() calls stat(2), and passes exceptions from stat(2) up the stack.
IMHO this isn't the most useful behaviour in this situation - I think you'll be far more likely to want to attempt to continue on, ignoring anything that raised ENOENT.
Have patched this in my fork by simply adding try-catch statements.
[1]
davidmiller@Dev-pc-14:~/src/thinclient$ jasmine-node .
node.js:183
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: ENOENT, No such file or directory '/home/davidmiller/src/thinclient/static/.#jsonrpc_backend.js'
at Object.statSync (fs.js:400:18)
at Object.getAllSpecFiles (/home/davidmiller/local/node/node_modules/jasmine-node/lib/jasmine-node/index.js:151:14)
at Object.getAllSpecFiles (/home/davidmiller/local/node/node_modules/jasmine-node/lib/jasmine-node/index.js:154:29)
at Object.loadHelpersInFolder (/home/davidmiller/local/node/node_modules/jasmine-node/lib/jasmine-node/index.js:31:25)
at Object. (/home/davidmiller/local/node/node_modules/jasmine-node/lib/jasmine-ode/cli.js:42:9)
at Module._compile (module.js:423:26)
at Object..js (module.js:429:10)
at Module.load (module.js:339:31)
at Function._load (module.js:298:12)
at require (module.js:367:19)

I seem to be experiencing this same problem for .coffee files

Nevermind, it actually turned out to be an issue with mikeal's watch module.  Please ignore my comment above.


Strict mode only works for basic values

require 'virtus'

class SomeRandomClass
end

class User
  include Virtus.model(strict: true)

  attribute :some_ran_class, SomeRandomClass
end

User.new(some_ran_class: 5) # no error

User.new() # no error

User.new(some_ran_class: SomeRandomClass.new) # should be the only one that doesn't cause an error

This is because if the type is not a recognized primitive, it defaults to Object, and coercing an object to an object will always work.
But I feel like if you have strict mode enabled, you should only be able to have the Class type you specified

Just came across this - what's the sense of specifying attribute type if that type isn't honored? That's a total disaster. You can assign random things to attribute and there's no casting done when you supply virtus model #new with a hash of stuff.

@celesteking you should check out https://github.com/AaronLasseigne/active_interaction
It’s a much better implementation

Me? Nope, because it's 3rd party (elasticsearch-persistence) that's using this stale software.
Anyways, I've managed to find a workaround:
require 'ipaddr'

class Mymodel
  include Virtus.model

  class TypeCoercer
    define_singleton_method(:[]) do |cast_type|
      Class.new(Virtus::Attribute).class_eval do
        define_method(:coerce) do |value|
          value && cast_type.new(value)
        end
        self
      end
    end
  end

  attribute :myattr, TypeCoercer[IPAddr], default: nil
end

puts Mymodel.new(myattr: '<IP_ADDRESS>').myattr.class

VIRTUS CUSTOM COERCION NOT WORKING attribute not coercing


Add support for cad/gmsh problem setup in ABLATE

Required

read cad to define dm/mesh
grow/define boundaries based upon cad
write creation/example guide in ablate docs

This has been closed using a variety of PR


ESLint checks (and the upcoming Flow integration) is missing in tests

Followup to this comment thread: https://github.com/facebookincubator/create-react-app/pull/1152#discussion_r90960900
Description
When running the start or test lint issues or flow issues (with #1152) are not reported if they are not within a test file (not required by webpack, only seen by jest).
Expected behavior
I see three acceptable UX here:

The start script should explore test files as well and run the eslint loader (+ flow plugin) on it
The test script should run eslint (+ flow) each time jest triggers a change from its watch
Add an independent script that will watch all files at the same time

The first one would be the best, the last one would be ok, but let's try to avoid it!
Actual behavior
Test files are completely ignored by static checks.
Environment
Run these commands in the project folder and fill in their results:

npm ls react-scripts (if you haven’t ejected): 0.8.1
node -v: 6.7.0
npm -v: 3.10.3
yarn --version: 0.18.0

Then, specify:

Operating system: macOS Sierra 10.12.2 Beta (16C41b)
Browser and version: Google Chrome 54.0.2840.98 (64-bit)

Reproducible Demo
https://github.com/rricard/cra-failing-test-checks

Can/will npm test lint without flow too?

npm run build runs the linter, is this not enough for your use case?

@gaearon My CI complained about some warnings, somehow I could not reproduce them locally. :/
I've added a lint script in package.json that just runs eslint, works for me now.
"scripts": {
  "lint": "eslint src"
}

see https://github.com/thisconnect/cra-desktop/commit/02d3e2f37c63a87e08dbcb859ee850588d69306d
(This is a test repo that uses and instantiated create-react-app + electron as in PR https://github.com/facebookincubator/create-react-app/pull/1718)

My CI complained about some warnings, somehow I could not reproduce them locally. :/

The build script didn’t use to output warnings. It does now, if you update to<EMAIL_ADDRESS>and higher.

Thanks @gaearon !!

This is interesting: https://github.com/rogeliog/jest-runner-eslint


Figure out if we can use sendgrid

Are they going to allow our users to provision servers? It looks unlikely.

Happy to help you figure this one out. When your ready, just shoot an email on over to<EMAIL_ADDRESS>

The long and the short of it is the only way we can do this is to act as a reseller and actually provide this as a service. I'm thinking we probably don't want to do that (though maybe IRE does). Currently investigating alternatives.

Punted. CritSend is more appropriate for our use.


Switch to new IREE package names and versions.

IREE is renaming its Python packages from iree-compiler and iree-runtime to iree-base-compiler and iree-base-runtime, in order to switch to a new versioning scheme: https://github.com/iree-org/iree/issues/18938. This switches to using the new package names and versions and cleans up some related documentation along the way.
Note: the new packages are not yet built and published, hence this is a draft PR. Once packages are published we can rebase, test this, and then proceed.

CI unit tests are very broken - stalling without useful logs. Trying to debug through, but I'm only making very slow progress.
 The following build (https://github.com/iree-org/iree/releases/tag/iree-2.9.0rc20241108) is what I promoted to PyPI.

Down to three test failures:
 =========================== short test summary info ============================
FAILED tests/aot/globals_test.py::BufferTest::testMutableBuffer - AssertionError
FAILED tests/aot/globals_test.py::BufferTest::testReadWriteReadMutableBuffer - AssertionError
FAILED tests/aot/compiled_exported_program_test.py::TorchExportTests::testBuffersAsGlobals - AssertionError
====== 3 failed, 287 passed, 279 skipped, 9 xfailed, 8 warnings in 41.15s ======

May be able to XFAIL those and proceed. Not sure if local changes are needed or if something regressed in IREE or MLIR.


Check api calls

Check the amount of calls we can have (for the map)
https://docs.mapbox.com/help/getting-started/access-tokens/

found a testmode in mapbox so it won't count toward the account quota  https://docs.mapbox.com/mapbox-gl-js/api/map/#map-parameters


Non-compatible with Laravel 11

Fails to run composer require helgesverre/milvus in Laravel 11 project.
Error Message

Problem 1

spatie/laravel-data[3.10.0, ..., 3.11.2] require illuminate/contracts ^9.30|^10.0 -> found illuminate/contracts[v9.30.0, ..., v9.52.16, v10.0.0, ..., v10.48.7] but these were not loaded, likely because it conflicts with another require.
helgesverre/milvus[v0.0.1, ..., v0.0.3] require spatie/laravel-data ^3.10 -> satisfiable by spatie/laravel-data[3.10.0, ..., 3.11.2].
Root composer.json requires helgesverre/milvus * -> satisfiable by helgesverre/milvus[v0.0.1, v0.0.2, v0.0.3].

Solution
My initial thought was to fork off this repo and run a composer update command to bring the packages up to date with those used in Laravel 11. However, it was fine for me to just downgrade to laravel 10 in this case, so I just took the easy way out. Just wanted to make this issue known.

Will update the package to laravel 11 over the weekend if i get time.
On Fri, Apr 12, 2024 at 5:34 AM Nathan Ibarcena @.***>
wrote:

Fails to run composer require helgesverre/milvus in Laravel 11 project.
Error Message
Problem 1

spatie/laravel-data[3.10.0, ..., 3.11.2] require
illuminate/contracts ^9.30|^10.0 -> found illuminate/contracts[v9.30.0,
..., v9.52.16, v10.0.0, ..., v10.48.7] but these were not loaded, likely
because it conflicts with another require.
helgesverre/milvus[v0.0.1, ..., v0.0.3] require spatie/laravel-data
^3.10 -> satisfiable by spatie/laravel-data[3.10.0, ..., 3.11.2].
Root composer.json requires helgesverre/milvus * -> satisfiable by
helgesverre/milvus[v0.0.1, v0.0.2, v0.0.3].

Solution
My initial thought was to fork off this repo and run a composer update
command to bring the packages up to date with those used in Laravel 11.
However, it was fine for me to just downgrade to laravel 10 in this case,
so I just took the easy way out. Just wanted to make this issue known.
—
Reply to this email directly, view it on GitHub
https://github.com/HelgeSverre/milvus/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIKA5DSRGTDFUODQM52RYLY45I5PAVCNFSM6AAAAABGDMSTQCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGIZTQOJYGE4TQMA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>