How to specify Proxy Settings

We were trying out Application Insights at work and we are not getting any telemetry in the Azure portal other than Page Views. We are pretty sure it is related to our Corporate proxy (it has caused us high levels of pain in the past).
How can I specify the proxy settings? The default proxy will not cut it for us. We have to specify url, port, username and password for our proxy.
For our .NET Core we have to set it to the HttpClientHandler like this:
var httpClientHandler = new HttpClientHandler {
    Proxy = new MyProxy(), //our implementation of IWebProxy
};

I couldn't find the code in this repo in charge of sending the telemetry but if you are using HttpClient then it would be something similar.
Note that we are planning to use Application Insights in house, not in Azure, so we have the proxy restriction in all our environments.

Hello.
Can someone please confirm if it's possible to specify a proxy only/different for App Insights using the @mvdburght suggestion?

@funnay, I think @Swellenator already confirmed it. This isn't officially supported since it uses reflection to replace a private field value. I also think that it won't work on applications targeting net45.

Thanks @pharring.
This should be a basic feature for on-premises backend services.

Oh, sorry; that doesn't work for HttpClient.
In .NET Core 3.0 and 3.1, there's an HttpClient.DefaultProxy static property:
https://docs.microsoft.com/dotnet/api/system.net.http.httpclient.defaultproxy

Does setting that proxy actually helps? I tried it and Application Insights does not appear to use proxy.
I'm on dotnet core 3.1

In .NET Core 3.0 and 3.1, there's an HttpClient.DefaultProxy static property

That's still a big NO you don't ever want any proxy to be a global DefaultProxy because if your infra have LAN / Cloud / Local dev laptop
All your traffic will implicitly use the "default" which will possible end up in HTTP 502
Each and every single package dealing with HttpClient must have an extension point allow consumer to use a SPECIFIC proxy for that SPECIFIC package
Any attempt of "Big Bang Default Global" Proxy like

web.config (only netfx)
env var
DefaultProxy
ServiceEndpointManager
etc ... are terrible solution that only works if literally ALL your code run in a single place, and your traffic goes to only toward one direction
If you try to go that way you will have to handle things like NO_PROXY or ByPass or "this needs auth but not this" or "but here I'm on AKS I don't need a proxy"

@cijothomas
Please stop being ignorant of this issue. This is a normal situation for many applications - needing to pass the traffic through a proxy. This issue is three years old and it has not got the attention that it needs. An occasional outreach of it is "tagged with Future milestone" is not sufficient.

I can share the obvious bad news for most : This is not planned in the coming SDK release (2.16), and that means this is not going to be solved in 2020.
Tagging @ank3it to to treat this as a top priority issue for Jan-June 2021 SDK releases.

but it's not solved, so not stale I guess

maybe @cijothomas or @reyang have a way to unstale that issue until the release of that feature ?

Thank you for commenting, commenting will automatically remove the stale label (when the bot runs this evening).
Please do continue to comment and upvote, this helps our team to prioritize issues!
I understand this is a long open issue and I'm sorry for the added frustration.
Our team is aware of this issue and it's on our "want to-do" list but hasn't been committed for the current semester of work.
I believe the workaround that has worked for customers is to have a custom endpoint defined in the firewall that forwards telemetry to our ingestion. The SDK can then be configured to send telemetry to that custom endpoint.

I believe the workaround that has worked for customers is to have a custom endpoint defined in the firewall that forwards telemetry to our ingestion. The SDK can then be configured to send telemetry to that custom endpoint.

No it's not a working workaround sadly. This issue is about Proxy, not firewall.
In order to add that firewall rule you're assuming few things:

NTLM Proxy are not anonymous proxy and you'd have to setup it explicitly
Internet access is completly forbidden in some company exception done on very specific infra
if by any chance that connection happens to be on a network "path" that

the sec team allow to use (generally browsing != application)
you happen to find the right place for all the layer of possible firewall
the sec team allowing AppInsight on that "browsing/outgoing/default path"
... then maybe you're lucky

see answer there:
https://github.com/microsoft/ApplicationInsights-dotnet/issues/1554#issuecomment-720450913
The HttpClient causing issue is well identified.
It's a private static one, being instanciating ... using the static ctor
The fix would be to use the existing Options and let us (consumer) specify an HttpHandler and/or an IWebProxy and pass it down all layer until that one

This is how OpenTelemetry has solved this for Zipkin exporter : https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Exporter.Zipkin#configure-httpclient

@cijothomas Is a similar solution to the one done by Zipkin on the roadmap for 2022?

Not in the plan for next 4 months sure.
it is possible that it'll be solved in the OpenTelemetry based exporter here : https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter

Hi @cijothomas any updates on this? We're using the latest 2.21 libraries.

There should be a configuration setting for this. My primary use case is to pass it through a dev recording proxy to troubleshoot 400 errors from the app insights endpoint.

this is still something valuable that most of the Azure SDK took time to setup when ditching MSAL, this would benefits a lot of people here cc @cijothomas

Hello there, I am on the same page, will also try to use the mentioned workaraound until there is a way to use the httpclientfactory.
Kind regards

This really should be a configuration option


Throwing error after reset while planning..

Current iterations reset to 0.
terminate called after throwing an instance of 'std::out_of_range'
what():  vector::_M_range_check: __n (which is<PHONE_NUMBER>) >= this->size() (which is 147456)

Hi, I have encountered the same error,How do you solve it? Thank you
[ INFO] [1562653147.454938015, 94.702000000]: Current iterations reset to 0.
terminate called after throwing an instance of 'std::out_of_range'
what():  vector::_M_range_check: __n (which is<PHONE_NUMBER>) >= this->size() (which is 147456)

I encountered the same error but often occurred at the beginning phase of the planning. Maybe some improper parameters lead to it.

I also encoutered this error when I used the "nav to goal". I don't know how to solve it, would you have some advices?

I also meet this problem ,can you give me some advice?


Invoking a fitBounds on initialization

How to execute a method fitBounds once the map object initialized?
Where am I so far (terribly wrong, but most of the time works):
  render() {
    var center = [59.938043, 30.337157];
    var zoom = 8;

    return (
      <div className="search-map">
        <GoogleMap
          center={center}
          zoom={zoom}
          ref="googleMap">
          {this.renderMarkers()}
        </GoogleMap>
      </div>
    );
  },
  componentDidUpdate() {
    var map = this.refs.googleMap.map_;
    if (map) {
      var maps = this.refs.googleMap.maps_;
      var bounds = new maps.LatLngBounds();
      each(this.props.places, (place) => {
        var latLng = new maps.LatLng(place.lat, place.lng);
        bounds.extend(latLng);
      });
      map.fitBounds(bounds);
    }
  }

Most of the time it works, but sometimes an update happens before the map mounted, or in other words googleMapLoader is resolved.
I believe the correct solution is to invoke props callback in componentDidMount GoogleMap component.

It's not a good idea to use internal private variables.
And also i don't want to expose google api for many reasons.
There is Geo class inside, which i can expose to users.
But you can import it now import Geo from 'google-map-react/modules/utils/geo.js';
Using Geo class it is easy to write your own fitBounds function without google api.
After you can calculate center and zoom props in any place of your code like
const {center, zoom} = fitBounds(mapWidth, mapHeight);

You can twek fitBounds realization from this code https://github.com/mapbox/mapbox-gl-js/blob/65d0d6d9b15d9e2fa7da6aa55601465b2bb74f94/js/ui/camera.js

@istarkov thank you for the quick response. What are the main reasons not to expose google API? Isn't it easier to reuse native classes and methods, rather than introducing them into a library. What benefits I can see so far:

less bugs
more features
less code to bundle

The first reason is
The first versions of this library was written not for google api but for great mapbox-gl-js. And in some internal projects i still use mapbox-gl-js.
As you see in code Geo class is copy paste from mapbox-gl-js library. There is their LICENCE in code.
Some times later i will publish mapbox-gl-js react library with same API as now. And it will be easy for everyone switch from one library to another. It will be impossible if i expose google api for everyone.
The second reason is
Bugs - the more api users can use - more bugs users can get.

Seems reasonable. Looks like it may be easily adopted later to leaflet or something similar.

Hi,
I have the same issue, I'm trying to use fitBounds to make all markers visible on the map, this should happen only on page load - which means that I should be able to remove bounds_changed,
center_changed, zoom_changed events handlers, and reattach them after fitBounds finishes execution. Those events are used to trigger some actions that filter a list of results.
Is the fitBounds going to get into the public API any time soon?
Thanks!

@istarkov - do you have any news on this one? Thanks.

I'll add this feature in next few days

:+1: sounds good

Add utils functions, with fitBounds and other functions
Use fitBounds to get zoom and center.
Usage example:
  import { fitBounds } from 'google-map-react/utils';

  const bounds = {
    nw: {
      lat: 50.01038826014866,
      lng: -118.6525866875,
     },
     se: {
      lat: 32.698335045970396,
      lng: -92.0217273125,
     },
  };

  const size = {
    width: 640, // Map width in pixels
    height: 380, // Map height in pixels
  };

  const {center, zoom} = fitBounds({nw, se}, size);

How would you approach setting   bounds from markers generated from our db rather than specifying the exact lat and lng for nw and se

What is the best way to get nw, se from set of markers?

I am trying to use fitbounds to work.
using following code
`const bounds = {
nw: {
lat: 30.4646593,
lng: -97.74710249999998
},
se: {
lat: 37.6239079,
lng: -122.38159239999999
}
};
    const size = {
        width: 640, // Map width in pixels
        height: 380, // Map height in pixels
    };

    const {center, zoom} = fitBounds(bounds, size);`

But i am getting Uncaught TypeError: (0 , v.default) is not a function on the fitBounds call in the browser.
does someone have any idea, what am i doing wrong ?

What is the size of the map is dynamic?

What is the best way to get nw, se from set of markers?

@ng-hai You can use fitBounds method in current library and a simple algorithm to find bounds of points set.
The only problem you need to solve in such algorithm is zero meridian problem as you can have real interval of point be across zero meridian
Like  __________________ where * is a point and here real lng interval is not 0-360

Fast and dirty realization and please no questions about as I will not answer
import { sortBy } from 'lodash';
import { fitBounds } from 'google-map-react/utils';

// Here world is a tube
const findZoomAndCenter = (
  {
    size,
    center: defaultCenter = { lat: 35.689, lng: 139.741 },
    zoom: defaultZoom = 10,
    zoomBounds = { min: 3, max: 17 },
  },
  points
) => {
  if (size === undefined) return { center: defaultCenter, zoom: defaultZoom };
  if (points.length === 0) return { center: defaultCenter, zoom: defaultZoom };

  // to not write additional logic for one point
  const eps = 0.0001;

  const pointsNorm = points
    // convert all that latitude longitude
    .map((pt) => ({
      ...pt,
      lat: pt.lat !== undefined ? pt.lat : pt.latitude,
      lng: pt.lng !== undefined ? pt.lng : pt.longitude,
    }))
    // add bounding box corners to points
    .reduce((r, pt) => {
      r.push(pt);

      if ('leftTopLatitude' in pt) {
        r.push({
          ...pt,
          lat: pt.leftTopLatitude,
          lng: pt.leftTopLongitude,
        });

        r.push({
          ...pt,
          lat: pt.rightBottomLatitude,
          lng: pt.rightBottomLongitude,
        });
      }

      return r;
    }, []);

  const { lat: latFirst, lng: lngFirst } = pointsNorm[0];

  const { nw, se } = pointsNorm
    .reduce(
      ({ nw: ptNW, se: ptSE }, { lat, lng }) => ({
        nw: {
          lat: Math.max(ptNW.lat, lat + eps),
          lng: Math.min(ptNW.lng, lng - eps),
        },
        se: {
          lat: Math.min(ptSE.lat, lat - eps),
          lng: Math.max(ptSE.lng, lng + eps),
        },
      }), {
        nw: { lat: latFirst, lng: lngFirst },
        se: { lat: latFirst, lng: lngFirst },
      }
    );

  // bounds on the tube can be not as simple {from, to}
  // ____***_____
  // but having zero meridean we could get bounds like
  // **_________*
  // The only idea I have is to use n^(log2(n) + c) algorithm to find such bounds

  // The idea is to find max distance between nearest pts (as I know similar algos always n*log(n))
  // so sorting is good here
  const pointsSorted = sortBy(pointsNorm, 'lng');

  let dist = 0;
  let leftLng = 0;

  for (let i = 0; i < pointsSorted.length - 1; ++i) {
    const d = pointsSorted[i + 1].lng - pointsSorted[i].lng;
    if (d > dist) {
      leftLng = pointsSorted[i].lng;
      dist = d;
    }
  }

  const minInterval1 = se.lng - nw.lng;
  const minInterval2 = 360 - dist;

  // decide what kind of bounds we have
  // this ____***_____
  // or this **_________*
  const bounds = minInterval1 < minInterval2
    ? { nw, se }
    : {
      nw: {
        lat: nw.lat,
        lng: leftLng + dist,
      },
      se: {
        lat: se.lat,
        lng: leftLng + 360,
      },
    };

  const primitiveCenter = {
    lng: (bounds.se.lng + bounds.nw.lng) / 2,
    lat: (bounds.se.lat + bounds.nw.lat) / 2,
  };

  const { center: center0, zoom: zoom0 } = fitBounds(bounds, size);

  const center = zoom0 > zoomBounds.max
    ? primitiveCenter
    : {
      ...center0,
      lng: center0.lng % 360,
    };

  const zoom = Math.min(Math.max(zoom0, zoomBounds.min), zoomBounds.max);

  return {
    center,
    zoom,
  };
};

export default findZoomAndCenter;

Can you give the params of this last function?

@voold No!
have your read this? Fast and dirty realization and please no questions about as I will not answer

There is an excellent (IMHO) library for doing Geo-calculations that I use quite frequently, ´http://turfjs.org´
Makes it pretty simple to calculate bounds and such by yourself..! :)

Is there a reason, apart from being a hacky dirty solution, to put the function into util within the repo. So pull requests could work that over.

I mixed first solution provided by @dmitry here, with onGoogleApiLoaded and works like a charm:
const apiIsLoaded = (map, maps, places) => {
  if (map) {
    const bounds = new maps.LatLngBounds();
    places.forEach(({ place }) => {
      const latLng = new maps.LatLng(
        place.coordinate.latitude,
        place.coordinate.longitude,
      );
      bounds.extend(latLng);
    });
    map.fitBounds(bounds);
  }
};

const GoogleMap = props => (
  <GoogleMapReact
    onGoogleApiLoaded={({ map, maps }) => apiIsLoaded(map, maps, props.places)}
    bootstrapURLKeys={{
      key: process.env.MAP_KEY,
      language: 'en',
    }}
    options={createMapOptions}
    center={props.center}
    zoom={props.zoom}
  >
    {props.children}
  </GoogleMapReact>
);

Thoughts?


#6 Implemented zooming around a point

Placed objects are moved when zooming to keep same grid cell beneath the mouse cursor
Grid is still aligned to the top left, so mouse position in grid cell is changing, but will always stay on same grid cell

Feels very nice to use - one thing I think this could benefit from is a setting to toggle it off. At the moment, you have no choice but to use zoom to point, and some people might be used to the current behaviour. I'd happy for it to be an opt-in to disable (e.g zoom to point mode is enabled by default).

I think zooming to the point is much more intuitive that it should be enabled forever. Is there even some window for these settings?

So do I, but that might not be the opinion of everyone. Especially for this, where its very easy to just add a single branch in the code  to implement it.
Not yet, just put in the "Tools" menu for now, and it can get moved to a settings page once there is one for it.

Waiting for the PreferencesWindow PR is merged so I can add new setting there

If you make it a new default, please make it obvious to the user that it can be changed back.
Maybe some kind of notification at the first start of the new version?
Also I noticed that the layout is "shaking" when zoomed in and out. Is there a way to smooth it out a little bit?

I think that to smooth it out we'd need to offset the grid drawing by less than a full grid cell. Point is a pair of doubles, so could work.

Maybe some kind of notification at the first start of the new version?

Maybe we should add a changelog notification on first startup - that would be a separate issue though.

Absolutely right about the changelog notification.
But I wanted to make sure that there is a special "warning" to the user that the behaviour of zooming has changed dramatically (and can be changed back).
If you decide to make it the new default.

It can be disables by default and no notification would be necessary. Inquisitive user can check the patch notes or preferences window.
I'll check how hard it will be to start drawing everything offset from top left corner.

Inside PR #238 I added the UI inside the preferences window.
The event inside the canvas looks like the following:
protected override void OnMouseWheel(MouseWheelEventArgs e)
{
    if (!_appSettings.UseZoomToPoint)
    {
        GridSize += e.Delta / 100;
    }
    else
    {
        //will be added by PR #220
    }
}

Thank you, I'll look into this but now I don't have much spare time.


Add updates about test runner and ESP-IDF in CHANGELOG

Add changes related to #2950, #2955 and #2893 in the CHANGELOG.md to convey about updates since the 202012.00 release
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run checks


TypeScript - Stricter type checking

Hi,
I tried to use this library in a typescript project using webpack.
Unfortunately, the TypeScript (v4.4.4) compiler is throwing roughly 20 type check errors.
Most of them are null/undefined related, e.g. Cannot assign type undefined to type number.
Could you perhaps upgrade your version of TypeScript and fix these?

I added ESLint to the v5-dev branch and fixed the errors it identified with TypeScript 4.5.2. Checkout the latest commit and see if that fixes your issues.

Closed due to lack of response


Automation not working

Hello there, it looks like automation on Homekit doesn't work unless I open the app. I have some devices connected on my homebridge raspberry pi 3 that may turn on and off in some conditions that doesn't work with automation. No errors on terminal. I tried to update homebridge npm, all homebridge plugin and so on, but nothing. Of course I've also tried to reboot my raspi and network connection. Any help?

With homebridge and automation being driven by events from the plugins it depends on the plugin being written to properly support events, homekit itself properly supporting events or notifications for that service type, and having a Apple TV 4 or iPad.
Can you supply more details on your setup and what your attempting to automate?
Sent from my iPad

On Apr 20, 2017, at 5:39 AM, samuelemarazzita<EMAIL_ADDRESS>wrote:
Hello there, it looks like automation on Homekit doesn't work unless I open the app. I have some devices connected on my homebridge raspberry pi 3 that may turn on and off in some conditions that doesn't work with automation. No errors on terminal. I tried to update homebridge npm, all homebridge plugin and so on, but nothing. Of course I've also tried to reboot my raspi and network connection. Any help?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank you for answering. Well for example I’ve installed the YEELIGHT strip led controlled by homebridge-yeelight plugin and it does’t work. At the same time I have some Philips Hue strip led controlled by Philips Bridge that works perfectly.
Same thing for D-Link smart plug.

Il giorno 20 apr 2017, alle ore 12:18, NorthernMan54<EMAIL_ADDRESS>ha scritto:
With homebridge and automation being driven by events from the plugins it depends on the plugin being written to properly support events, homekit itself properly supporting events or notifications for that service type, and having a Apple TV 4 or iPad.
Can you supply more details on your setup and what your attempting to automate?
Sent from my iPad

On Apr 20, 2017, at 5:39 AM, samuelemarazzita<EMAIL_ADDRESS>wrote:
Hello there, it looks like automation on Homekit doesn't work unless I open the app. I have some devices connected on my homebridge raspberry pi 3 that may turn on and off in some conditions that doesn't work with automation. No errors on terminal. I tried to update homebridge npm, all homebridge plugin and so on, but nothing. Of course I've also tried to reboot my raspi and network connection. Any help?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/nfarina/homebridge/issues/1254#issuecomment-295668552, or mute the thread https://github.com/notifications/unsubscribe-auth/AEytnn_1XFAqhGZio7xqO5iE1bi_DfExks5rxzDtgaJpZM4NCyGN.

I have noticed that using a hue bridge with homekit enabled and homebridge there is a issue with automations.

So maybe it's better to use only homebridge to take control of Hue? In this case I'm going to lose zigbee technology instead of web API?

Its when the Philips-hue app updates homekit that the problem occurs, I just disable and enable the automation and it works good again.

I experienced some reliability issues  right at the start using the Phillips Hue app with HomeKit even before Homebridge implementation. Right away I removed the hue app and everything worked very reliably. This has continued after Homebridge implementation

Ok, I'm going to try both case: disabling and enabling automations and removing hue app. Back to you as soon as I have an answer.

Hello there. Unfortunately the automation still doesn't work. Any other suggestion?

If you think it is caused by the homebridge-hue plugin, I suggest opening an issue there and closing this.
Sent from my iPad

On Apr 22, 2017, at 2:20 AM, samuelemarazzita<EMAIL_ADDRESS>wrote:
Hello there. Unfortunately the automation still doesn't work. Any other suggestion?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

I didn't install the hue plugin. So this is an homebridge automation bug I suppose.

So this is an homebridge automation bug I suppose.

In my experience, HomeKit automation is flaky at times, irrespective of what HomeKit accessories or homebridge plugins you use...

Its when the Philips-hue app updates homekit that the problem occurs

...especially after changing your HomeKit configuration.

it looks like automation on Homekit doesn't work unless I open the app.

I've experienced the same, and I've had similar reports from some of my homebridge-hue users.  I suspect this is caused by the AppleTV having lost the connection to the HomeKit accessory (be it the Hue bridge or homebridge), so it does't see the changed accessory state that should trigger the automation.  When a HomeKit app is active, it syncs the changed accessory state over iCloud to the AppleTV, which now does see the change and triggers the automation.
If you're lucky, logging out of iCloud on your AppleTV and logging back in again fixes this issue.  If unlucky, you'll need a complete reset of your HomeKit configuration.

I have noticed that using a hue bridge with homekit enabled and homebridge there is a issue with automations.

I've also experienced that automations don't get triggered at all, both while using the v2 Hue bridge with HomeKit next to homebridge as well as while using only homebridge (I never tried automations with only the Hue bridge).  I suspect this is caused by the HomeKit configuration not being synced correctly to the AppleTV.  Usually, this is fixed by disabling all automations, waiting for these changes to be propagated to your other iOS devices, re-enabling them, and again waiting for these changes to appear on the other iOS device.  If unlucky... see above.

So maybe it's better to use only homebridge to take control of Hue?

I've disabled HomeKit on my v2 Hue bridge and have been running homebridge-hue solo for months.  I'm probably biased, but I have a feeling this setup is somewhat less complex and somewhat more stable.    If you have a v1 Hue bridge, this is your only option.
You need to be wary of the 99 accessory limit per HomeKit bridge though, although there's a bit more room, since I support the Hue motion sensor as a single accessory with three services, rather than as three accessories.  Also, you lose the ability to sync (light assignments to) rooms between the Hue bridge and HomeKit using the Hue app.  If you run homebridge-hue in tandem with the v2 Hue bridge, even the room assignments of the non-Philips lights exposed by homebridge-hue are synced by the Hue app.

In this case I'm going to lose zigbee technology instead of web API?

The v2 Hue bridge talks ZigBee to the lights (and sensors and switches) and provides the REST API regardless whether it's used for HomeKit.  In fact, so does the v1 bridge, which doesn't support HomeKit at all.

With homebridge and automation being driven by events from the plugins it depends on the plugin being written to properly support events
If you think it is caused by the homebridge-hue plugin

I'm not saying I'm incapable of making mistakes, but I took great care to setup events properly in homebridge-hue.

Thank you @ebaauw. I'm not using homebridge-hue to control my Philips HUE strips, but the Philips HUE bridge with HomeKit. Right now the problem is not the HUE but the Yeelight and the DLINK w215 that are not HomeKit ready. The automation doesn't work until I open the Home app on my device. Right now I have an iPad controlling all the accessories in my home and on this device there is no HUE app installed.
I'm testing right now automations with Elgato EVE app. I'll let you know if this fixes my problem.

No way, this morning automation didn't work again: only one yeelight switched on (with wrong color) and the dlink smart plug didn't turn on (no toast for me :( ).
Philips hue lighting works perfectly because they are controlled by hue bridge (maybe). Everything controlled by homebridge seems to have problems with automation. My raspberry command line tells me there were some errors with a yeelight but no detail of any kind.
I decided to try changing my router, hope this may help.
Note: Yesterday I checked on my iPad, switching off and on automations as you suggested me.

Sorry, just another note: using IFTTT to take control of yeelight or dlink seems to work perfectly.
Stay tuned and reply with any suggestion!

Philips hue lighting works perfectly because they are controlled by hue bridge

Yes, Hue bridge rules are far more reliable than HomeKit automation.  I've automated my lights using only the Hue bridge.  I only use HomeKit to automate non-Hue accessories: my Sonos speakers and Eve energy plugs.

Everything controlled by homebridge seems to have problems with automation.

That's Apple: it just works... in 95% of the cases.  In the other 5% they give you no clue whatsoever how to determine the problem, let alone fix it.

My raspberry command line tells me there were some errors with a yeelight but no detail of any kind.

Double-check that the changes are reflected in the Home app (or Eve).  If so, the problem is with HomeKit automation; if not the problem is with the plugin.

No way, this morning automation didn't work again: only one yeelight switched on (with wrong color) and the dlink smart plug didn't turn on

That sounds like a communication glitch between the AppleTV and homebridge.

I decided to try changing my router, hope this may help.

Before changing routers, I strongly recommend to use wired ethernet connections between the Raspberry Pi running homebridge, the Hue bridge (which doesn't support WiFi anyway), and the AppleTV.  No WiFi, no PowerLAN, see https://github.com/ebaauw/homebridge-hue/issues/15#issuecomment-282446732.  Also, if possible, use a lower channel (1 or 6) for your WiFi and set the ZigBee channel on your Hue bridge to 25, to minimise interference in the 2.4GHz range between WiFi and ZigBee.

Yesterday I checked on my iPad, switching off and on automations as you suggested me.

That might help if (some) HomeKit automation doesn't get triggered at all, not if the automation (for some accessories) only gets triggered when a HomeKit app is open, see my above post.

Hello there, just an update: the problem was my router. I bought an highest quality product that lets me create priority IP rules so, when the router restarts itself for any reason, the IOT gets the correct IP configured on homebridge.
DLINK w215 plug continue not working with automation (the command line log continues saying ERROR when trying to turn it on with automation) but the yeelight solution works fine. I think this may be a plugin problem, I'm going to report it to the developer.
Thank you for your support!
I'm going to leave the issue open to let you know any improvement on the DLINK w215 bug.


Run WebP related tests also

From https://github.com/timber/timber/pull/2319#issuecomment-683980238
@jarednova Here we(bp) go!

Coverage decreased (-2.4%) to 91.562% when pulling 438b997b56994fab1f83d46b02530146d86bf2df on szepeviktor:patch-2 into 2ec488f347bcf307726636adef7bdfe7e52e21b4 on timber:master.

Coverage decreased (-2.4%) to 91.562% when pulling 438b997b56994fab1f83d46b02530146d86bf2df on szepeviktor:patch-2 into 2ec488f347bcf307726636adef7bdfe7e52e21b4 on timber:master.

OK (6 tests, 18 assertions)

🍏

Will adding --stop-on-skipped make skipped tests error out??

WOW, that was quick!

Will adding --stop-on-skipped make skipped tests error out??

It stops the tests, however the result isn't an error ...

Sad!
Please merge.

Excellent! I like how this keeps the webp tests separate (and a breezy 2:29 to run). Even if a small amount of time could be saved by merging it with one of the other 7.2 tests; I think it's easier to manage as its own element to enable/disable/update as we need


Let us properly pay HOLD invoices

Moves the ln payment from the state transition to the trigger, avoiding all the state machines to get stuck while paying HOLD invoices
Closes https://github.com/fedimint/fedimint/issues/3478
Adds a devimint test where we pay HOLD invoices and test the above scenario
Adds --finish-in-background flag to fedimint-cli ln-pay to let us pay HOLD invoices without blocking the terminal
Adds a fedimint-cli await-ln-pay to let us get the result of a ln payment in case it was interrupted or called using the above flag
Fixes an error on the gateway when we try to resume a ln payment
Closes https://github.com/fedimint/fedimint/issues/3639
Minor code cleanups

@elsirion @m1sterc001guy @okjodom Merging now to avoid more code conflicts, but you're welcome to do more rounds of reviews. I can address any comments or issues in future PRs