there is a bug in line 38?

Have you solve it ? I have the same problem.

Should be something like this.
def forward(self, x):
X_h, X_l = x
    if self.stride ==2:
        X_h, X_l = self.h2g_pool(X_h), self.h2g_pool(X_l)

    X_h2l = self.h2g_pool(X_h)

    X_h2h = self.h2h(X_h)
    X_l2h = self.l2h(X_l)

    X_l2l = self.l2l(X_l)
    X_h2l = self.h2l(X_h2l)

    X_l2h = self.upsample(X_l2h)
    X_h = X_l2h + X_h2h
    X_l = X_h2l + X_l2l

    return X_h, X_l

Hi, please check new version.


Error received from Miele event server

Hello,
thank you for version 3.0.1, it works great.
I only receive regularly (every +/- 4 minutes) errors about "Error received from Miele event server". I marked them with "*" in the log excerpt below. My network is working very fine (ping time from my MacMini to my router = 1.850 ms average, to an OVH Roubaix-bbased server: 17.166 ms average, to www.miele.com: 14.950 ms average.
[21/03/2021 13:42:15] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[21/03/2021 13:42:15] [Miele] Discovered device: id:<PHONE_NUMBER>12, name: Taque, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[21/03/2021 13:42:15] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[21/03/2021 13:42:15] [Miele] Lave-vaisselle: Removed temperature sensor.
[21/03/2021 13:42:15] [Miele] Discovered device: id:<PHONE_NUMBER>70, name: Lave-linge, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[21/03/2021 13:42:15] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model: Unknown Miele model
[21/03/2021 13:42:15] [Miele] Re-creating existing accessory with data from cache: Frigo
[21/03/2021 13:42:15] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:42:15] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:42:15] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:42:15] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic CurrentHeatingCoolingState to 2.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic TargetHeatingCoolingState to 2.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic CurrentTemperature to 4.
[21/03/2021 13:42:15] [Miele] Frigo: Updating characteristic TargetTemperature to 4.
[21/03/2021 13:42:48] [Homebridge UI] [mickey] Accessory layout changes saved.
*[21/03/2021 13:44:22] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:44:22] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:44:22] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:44:22] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:44:22] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:44:22] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:45:22] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:45:22] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:45:22] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 13:47:22] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
*[21/03/2021 13:47:22] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
*[21/03/2021 13:47:22] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:47:22] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:47:22] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:47:22] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:48:22] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:48:22] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:48:22] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 13:51:22] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:51:22] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:51:22] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:51:22] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:51:22] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:51:22] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 13:52:23] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:52:23] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 13:52:23] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 13:55:23] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:55:23] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:55:23] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:55:23] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 13:55:23] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 13:55:23] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].

Hi, that is unfortunate. I did see these kind of messages once before while testing the last 10 days. They did went away after a reboot or spontaneously.
It is Miele sending this actively to the plugin, not sure why it decides to do that though.
I will try to think of a solution (as it is Miele server side initiated)

OK, currently, it is still going on. When you say "reboot", do you mean Homebridge ? Or the MacMini running it (the Homebridge instance was already restarted after the plugin update).

Homebridge instance, but it is a workaround, not a real solution. ;-)
Let me see if I can give the Miele server some slack when connecting with multiple devices within the same second.

If you want, could you beta the following release?
sudo npm install -g homebridge-mieleathome@beta

Hello, just did it and let it run a few minutes, but the issue is still there (after you spoke about "giving some slack" I still see that the door arrives simultaneously for the 3 appliances, so maybe the update to beta did not work ??? the version says 3.0.2 though, and "3.0.2 - beta" in the list of available versions):
[21/03/2021 22:46:10] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[21/03/2021 22:46:10] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[21/03/2021 22:46:10] [Miele] Discovered device: id:<PHONE_NUMBER>12, name: Taque, model: Unknown Miele model
[21/03/2021 22:46:10] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[21/03/2021 22:46:10] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model: Unknown Miele model
[21/03/2021 22:46:10] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[21/03/2021 22:46:10] [Miele] Discovered device: id:<PHONE_NUMBER>70, name: Lave-linge, model: Unknown Miele model
[21/03/2021 22:46:10] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[21/03/2021 22:46:10] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model: Unknown Miele model
[21/03/2021 22:46:10] [Miele] Re-creating existing accessory with data from cache: Frigo
[21/03/2021 22:46:10] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:46:10] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
[21/03/2021 22:46:10] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:46:11] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:46:11] [Miele] Frigo: Updating characteristic CurrentHeatingCoolingState to 2.
[21/03/2021 22:46:11] [Miele] Frigo: Updating characteristic TargetHeatingCoolingState to 2.
[21/03/2021 22:46:11] [Miele] Frigo: Updating characteristic CurrentTemperature to 4.
[21/03/2021 22:46:11] [Miele] Frigo: Updating characteristic TargetTemperature to 4.
*[21/03/2021 22:49:02] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:49:02] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 22:49:02] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:49:02] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 22:49:02] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:49:02] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 22:50:02] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:50:02] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:50:02] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 22:53:02] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:53:02] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 22:53:02] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:53:02] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 22:53:02] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:53:02] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].
[21/03/2021 22:54:02] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:54:02] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[21/03/2021 22:54:02] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
*[21/03/2021 22:57:02] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:57:02] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 22:57:02] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:57:02] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 60[s].
*[21/03/2021 22:57:02] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[21/03/2021 22:57:02] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 60[s].

It looks like the beta is applying the timeout correctly, but because it is (just) 500ms, it is not immediately visible:
46:10] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
46:10] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
46:10] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
46:11] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.

It has time to update the characteristic in between and your fridge reacts only at 46:11 (~1.5s after your dishwasher).
Very strange. I tested to open multiple connections to the Miele server. They work in parallel seamlessly.
You do have a point that the reconnect is again reconnecting all at the same time as the server error is received simultaneously. This I need to improve in the next beta.
What is awkward also is that the Miele server raises these events exactly 3min after connection.
Could you maybe attempt to make multiple connections (one per device) using your terminal:
curl -H "Accept:text/event-stream" -H "Accept-Language: en-GB" -H "Authorization: Bearer <token>" https://api.mcs3.miele.com/v1/devices/mac-001D63FFFE0203B2/events

In the mean time I will try to add more debug logging to the beta. Also awkward the error is just that. Normally when there is an authorisation error or such, the Miele event server will respond with the error description (I namely print the whole message and do not parse it in any way).

I've pushed a new beta release with some extra delay and reconnect will now delay in between devices also.

I did the terminal command. No error, on all 3 simultaneously (3 terminal windows). The command stops by itself after 28 "ping". No "error" was returned
Besides the first lines different for each appliance, all the rest is the same for the 3 appliances.
data: {"ident":{"type":{"key_localized":"Device type","value_raw":19,"value_localized":"Refrigerator"},"deviceName":"Frigo","deviceIdentLabel":{"fabNumber":"","fabIndex":"","techType":"","matNumber":"","swids":[]},"xkmIdentLabel":{"techType":"","releaseVersion":""}},"state":{"ProgramID":{"value_raw":2466250752,"value_localized":"","key_localized":"Program name"},"status":{"value_raw":5,"value_localized":"In use","key_localized":"status"},"programType":{"value_raw":0,"value_localized":"Programa","key_localized":"Program type"},"programPhase":{"value_raw":0,"value_localized":"","key_localized":"Program phase"},"remainingTime":[0,0],"startTime":[0,0],"targetTemperature":[{"value_raw":400,"value_localized":4.0,"unit":"Celsius"}],"temperature":[{"value_raw":400,"value_localized":4.0,"unit":"Celsius"}],"signalInfo":false,"signalFailure":false,"signalDoor":false,"remoteEnable":{"fullRemoteControl":true,"smartGrid":false,"mobileStart":false},"ambientLight":2,"light":null,"elapsedTime":[],"spinningSpeed":{"unit":"rpm","value_raw":null,"value_localized":null,"key_localized":"Spin speed"},"dryingStep":{"value_raw":null,"value_localized":"","key_localized":"Drying level"},"ventilationStep":{"value_raw":null,"value_localized":"","key_localized":"Fan level"},"plateStep":[],"ecoFeedback":null,"batteryLevel":null}}

event: actions
data: {"":{"processAction":[6],"light":[],"ambientLight":[1],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[{"zone":1,"min":1,"max":9}],"deviceName":true,"powerOn":false,"powerOff":false,"colors":[],"modes":[]}}

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

event: ping
data: ping

MacBook-Pro-Michel:~ mrabozee$

I installed the new beta. Here are the new logs. Do not hesitate to ask me to perform some tests.
[22/03/2021 09:16:45] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[22/03/2021 09:16:45] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[22/03/2021 09:16:45] [Miele] Discovered device: id:<PHONE_NUMBER>12, name: Taque, model: Unknown Miele model
[22/03/2021 09:16:45] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[22/03/2021 09:16:45] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model: Unknown Miele model
[22/03/2021 09:16:45] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[22/03/2021 09:16:45] [Miele] Discovered device: id:<PHONE_NUMBER>70, name: Lave-linge, model: Unknown Miele model
[22/03/2021 09:16:45] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[22/03/2021 09:16:45] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model: Unknown Miele model
[22/03/2021 09:16:45] [Miele] Re-creating existing accessory with data from cache: Frigo
[22/03/2021 09:16:45] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[22/03/2021 09:16:45] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
[22/03/2021 09:16:46] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[22/03/2021 09:16:47] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[22/03/2021 09:16:47] [Miele] Frigo: Updating characteristic CurrentHeatingCoolingState to 2.
[22/03/2021 09:16:47] [Miele] Frigo: Updating characteristic TargetHeatingCoolingState to 2.
[22/03/2021 09:16:47] [Miele] Frigo: Updating characteristic CurrentTemperature to 4.
[22/03/2021 09:16:47] [Miele] Frigo: Updating characteristic TargetTemperature to 4.
*[22/03/2021 09:19:34] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 09:19:34] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 63.1[s].
*[22/03/2021 09:19:34] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 09:19:34] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 63.1[s].
*[22/03/2021 09:19:34] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 09:19:34] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 63.1[s].
[22/03/2021 09:20:37] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[22/03/2021 09:20:37] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[22/03/2021 09:20:37] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
*[22/03/2021 09:23:34] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 09:23:34] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 63.1[s].
*[22/03/2021 09:23:34] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 09:23:34] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 63.1[s].
*[22/03/2021 09:23:34] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 09:23:34] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 63.1[s].

I just activated DEBUG, I will post the logs in a few

Here it is:
[22/03/2021 11:21:07] [Miele] Discovered devices:  [
  'mac-001D63FFFE0203B2',
  '000127334912',
  'mac-001D63FFFE0203B4',
  '000116035470',
  'mac-00124B0005AB4D8B'
]
[22/03/2021 11:21:07] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[22/03/2021 11:21:07] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[22/03/2021 11:21:07] [Miele] Discovered device: id:<PHONE_NUMBER>12, name: Taque, model: Unknown Miele model
[22/03/2021 11:21:07] [Miele] Ignoring unsupported device.

Oké, a small error caused the reconnect to happen at the same time after all, but this is certainly not the cause.
The error is just send out of the blue by Miele.
Since I'm shooting in the dark here, could you try to refresh your token? Or did you use the exact same token for the terminal parallel test?

The command stops by itself after 28 "ping". No "error" was returned
Isn't this because it discovered an error from Miele?

As in my test it just keeps going and going. curl doesn't stop by itself namely.
Also the number 28: This is close to the 3min between errors we noticed earlier. (5sec per ping * 28 = ~2.3min)

New beta (which probably doesn't solve anything)

Hello, just installed beta 3.0.4.
To answer your question "Since I'm shooting in the dark here, could you try to refresh your token? Or did you use the exact same token for the terminal parallel test?" => it was another fresh created token for the terminal test.
Do you want me to refresh the home bridge token ? How ?

Logs from 3.0.4-beta:
[22/03/2021 13:00:12] [Miele] Discovered devices:  [
  'mac-001D63FFFE0203B2',
  '000127334912',
  'mac-001D63FFFE0203B4',
  '000116035470',
  'mac-00124B0005AB4D8B'
]
[22/03/2021 13:00:12] [Miele] Discovered device: id: mac-001D63FFFE0203B2, name: Four, model: Unknown Miele model
[22/03/2021 13:00:12] [Miele] Ignoring unsupported device. Device: "Four" with raw type value: 12.
[22/03/2021 13:00:12] [Miele] Discovered device: id:<PHONE_NUMBER>12, name: Taque, model: Unknown Miele model
[22/03/2021 13:00:12] [Miele] Ignoring unsupported device. Device: "Taque" with raw type value: 14.
[22/03/2021 13:00:12] [Miele] Discovered device: id: mac-001D63FFFE0203B4, name: Lave-vaisselle, model: Unknown Miele model
[22/03/2021 13:00:12] [Miele] Re-creating existing accessory with data from cache: Lave-vaisselle
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Device connection delay: 100[ms]
[22/03/2021 13:00:12] [Miele] Discovered device: id:<PHONE_NUMBER>70, name: Lave-linge, model: Unknown Miele model
[22/03/2021 13:00:12] [Miele] Re-creating existing accessory with data from cache: Lave-linge
[22/03/2021 13:00:12] [Miele] Lave-linge: Device connection delay: 1100[ms]
[22/03/2021 13:00:12] [Miele] Discovered device: id: mac-00124B0005AB4D8B, name: Frigo, model: Unknown Miele model
[22/03/2021 13:00:12] [Miele] Re-creating existing accessory with data from cache: Frigo
[22/03/2021 13:00:12] [Miele] Frigo: Device connection delay: 2100[ms]
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Event 'device' received.
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Updating characteristic Active to 1.
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Remaing Duration update received: 0[s]
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Returning 1 for Active.
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Returning 0 for InUse.
[22/03/2021 13:00:12] [Miele] Lave-vaisselle: Returning 0 for RemainingDuration.
[22/03/2021 13:00:12] [Miele] Frigo: Returning 0 for CurrentHeatingCoolingState.
[22/03/2021 13:00:12] [Miele] Frigo: Returning 0 for TargetHeatingCoolingState.
[22/03/2021 13:00:12] [Miele] Frigo: Returning 0 for CurrentTemperature.
[22/03/2021 13:00:12] [Miele] Frigo: Returning 1 for TargetTemperature.
[22/03/2021 13:00:12] [Miele] Frigo: Returning 0 for TemperatureDisplayUnits.
[22/03/2021 13:00:12] [Miele] Lave-linge: Returning 0 for Active.
[22/03/2021 13:00:12] [Miele] Lave-linge: Returning 0 for InUse.
[22/03/2021 13:00:12] [Miele] Lave-linge: Returning 0 for RemainingDuration.
[22/03/2021 13:00:13] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[22/03/2021 13:00:14] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[22/03/2021 13:00:16] [Miele] Lave-linge: Event 'device' received.
[22/03/2021 13:00:16] [Miele] Lave-linge: Remaing Duration update received: 0[s]
[22/03/2021 13:00:17] [Miele] Frigo: Event 'device' received.
[22/03/2021 13:00:17] [Miele] Frigo: Updating characteristic CurrentHeatingCoolingState to 2.
[22/03/2021 13:00:17] [Miele] Frigo: Updating characteristic TargetHeatingCoolingState to 2.
[22/03/2021 13:00:17] [Miele] Frigo: Zone 1 Current Temperature update received: 400[C/100]
[22/03/2021 13:00:17] [Miele] Frigo: Updating characteristic CurrentTemperature to 4.
[22/03/2021 13:00:17] [Miele] Frigo: Zone 1 Target Temperature update received: 400[C/100]
[22/03/2021 13:00:17] [Miele] Frigo: Updating characteristic TargetTemperature to 4.
[22/03/2021 13:00:17] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:20] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:20] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:22] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:25] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:25] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:26] [Miele] Lave-vaisselle: Returning 1 for Active.
[22/03/2021 13:00:26] [Miele] Lave-vaisselle: Returning 0 for InUse.
[22/03/2021 13:00:26] [Miele] Lave-vaisselle: Returning 0 for RemainingDuration.
[22/03/2021 13:00:26] [Miele] Frigo: Returning 2 for CurrentHeatingCoolingState.
[22/03/2021 13:00:26] [Miele] Frigo: Returning 2 for TargetHeatingCoolingState.
[22/03/2021 13:00:26] [Miele] Frigo: Returning 4 for CurrentTemperature.
[22/03/2021 13:00:26] [Miele] Frigo: Returning 4 for TargetTemperature.
[22/03/2021 13:00:26] [Miele] Frigo: Returning 0 for TemperatureDisplayUnits.
[22/03/2021 13:00:26] [Miele] Lave-linge: Returning 0 for Active.
[22/03/2021 13:00:26] [Miele] Lave-linge: Returning 0 for InUse.
[22/03/2021 13:00:26] [Miele] Lave-linge: Returning 0 for RemainingDuration.
[22/03/2021 13:00:27] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:30] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:30] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:32] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:35] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:35] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:37] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:40] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:40] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:42] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:45] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:45] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:47] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:51] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:51] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:52] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:00:56] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:00:56] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:00:57] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:01] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:01] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:02] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:06] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:06] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:07] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:11] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:11] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:12] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:16] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:16] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:17] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:21] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:21] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:22] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:26] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:26] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:27] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:31] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:31] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:32] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:36] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:36] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:37] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:41] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:41] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:43] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:46] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:46] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:48] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:51] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:51] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:53] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:01:56] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:01:56] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:01:58] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:01] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:01] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:03] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:06] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:06] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:08] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:11] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:11] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:13] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:16] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:16] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:18] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:21] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:21] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:23] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:26] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:26] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:28] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:31] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:31] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:33] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:36] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:36] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:38] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:41] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:41] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:43] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:02:46] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:02:46] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:02:48] [Miele] Lave-vaisselle: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 13:02:48] [Miele] Lave-vaisselle: Will attempt to reconnect to the Miele event server after 60.1[s].
[22/03/2021 13:02:48] [Miele] Lave-linge: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 13:02:48] [Miele] Lave-linge: Will attempt to reconnect to the Miele event server after 61.1[s].
[22/03/2021 13:02:48] [Miele] Frigo: Error received from Miele event server: '{"type":"error"}'
[22/03/2021 13:02:48] [Miele] Frigo: Will attempt to reconnect to the Miele event server after 62.1[s].
[22/03/2021 13:03:48] [Miele] Lave-vaisselle: Connection with Miele event server succesfully (re-)established.
[22/03/2021 13:03:48] [Miele] Lave-vaisselle: Event 'device' received.
[22/03/2021 13:03:48] [Miele] Lave-vaisselle: Remaing Duration update received: 0[s]
[22/03/2021 13:03:49] [Miele] Lave-linge: Connection with Miele event server succesfully (re-)established.
[22/03/2021 13:03:49] [Miele] Lave-linge: Event 'device' received.
[22/03/2021 13:03:49] [Miele] Lave-linge: Remaing Duration update received: 0[s]
[22/03/2021 13:03:50] [Miele] Frigo: Connection with Miele event server succesfully (re-)established.
[22/03/2021 13:03:50] [Miele] Frigo: Event 'device' received.
[22/03/2021 13:03:50] [Miele] Frigo: Zone 1 Current Temperature update received: 400[C/100]
[22/03/2021 13:03:50] [Miele] Frigo: Zone 1 Target Temperature update received: 400[C/100]
[22/03/2021 13:03:53] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:03:54] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:03:55] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:03:58] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:03:59] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:04:00] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:04:03] [Miele] Lave-vaisselle: Event 'ping' received.
[22/03/2021 13:04:04] [Miele] Lave-linge: Event 'ping' received.
[22/03/2021 13:04:05] [Miele] Frigo: Event 'ping' received.
[22/03/2021 13:04:09] [Miele] Lave-vaisselle: Event 'ping' received.

BTW, after the 28 pings, no "error" was returned, curl just ends.

Wait, I have something... I only started ONE curl, and it ran for 47 pings

Another thing: whenever the reconnection occurs (now at different times), all 3 appliances receive the error at the exact same time.

More info: I started the Wash Machine. It seems that since some event occurred other than "ping", the error is not happening after 4-5 minutes, but the system seems to be kept alive when events like "remaining duration" occur. (see: the last error was around 15:45, than no more since activation of Wash Machine around 15:48.
The error however re-occurred a few minutes after the ending of the washing program (around 15:55:56) when only "ping" events occur in fact.

Thank you for your extensive analysis.

Do you want me to refresh the home bridge token ? How ?
You can click the setup button, to do the setup again. It will overwrite the token. Not that I think it will help though.

The thing that curl ends without error raised is understandable as the error I print is also not printing anything. It seems to me it is just Miele closing their end of the connection. This results in an error event (with no text) in the plugin.
Maybe some idle timeout as you indicate it doesn't happen when there is activity. This could be harmless as the plugin's current implementation is already resilient against this by auto reconnecting.

I suggest (because the error appears in red every 4 minutes it is a bit scary :-) ) when the "error" occurs, to log it as warning, reinstantiate the connection after less than a minute - to avoid missing other things - and only log it as an error if it reoccurs immediately (and in that case, wait for the 60 seconds or so as now).
It is strange though that Miele breaks the connection if all devices are "idle"... Weird implementation, because you risk to miss a device waking up, no ?

BTW, what is OpenAPI environment ? (because the documentation states eventing does not work in the OpenAPI environment, but nowhere I can find reference to Miele OpenAPI ???

I was thinking along the same lines: ignore error when it is an empty error and auto-reconnect.
I don't think the plugin will miss anything as the event server always posts the at that moment actual state. It is in that sense similar to the previous poll based solution ;-)

I do have to add though that my test instance and my "production quality" instance both run without a single interruption. The production instance has not seen a single interruption for 5 days now.
The test instance runs from my MacBook and my production instance from a raspberryPi. So this somehow doesn't add up.
So there is a slight chance still that something in your network causes the connection to break. Doesn't mean I will not change the implementation though

I agree that maybe there is something weird my side (as I wrote, it should be strange to have the Miele server breaks the line in case of idle); the thing is that I have no other glitch detectable in any of my systems, and no trail to follow in order to investigate.
My setup is quite geek as I have a dual WAN mixing 2 internet providers for redundancy purpose.
Hence, I tried the following:

I have a Raspberry PI not wired to the dual WAN router but to one of my provider.
I started a curl there to see if it still stops there as well to rule out the dual WAN session-based router. And the curl stopped as well (after 41 "ping").
As the Raspberry PI is totally outside my internal LAN (plugged directly to the Modem of that provider), I can rule out my internal network as well as the dual WAN router...

Really strange but I am clueless :-(

Just a thought: maybe you have one of your appliances generating regularly an event ? so that you do not have only "ping" ? As I wrote above, any event not "ping" seems to delay the hutting of the connection.

maybe you have one of your appliances generating regularly an event

Unfortunately not. It is a washing machine switched off during working days.
The new beta version "should" ignore errors without a status.
I reverified that I do not get the error message when I kill the client ethernet connection, so it seems server initiated.

Ok, I just installed 3.0.5 - beta, will report in a few...

Works like a charm now !

Maybe one thing, if you agree: the "Connection with Miele event server succesfully (re-)established." could be only shown in "DEBUG" mode :-)


Module dependencies set in buildModule hook are getting reset during the build

Bug report

What is the current behavior?
I'm trying to modify the source of the module based on this comment
So my code looks like this:
compilation.hooks.buildModule.tap('MyPlugin', (module) => {
	module.addDependency(new MyDependency())
})

But it's doesn't work because in the build method webpack resets dependencies of module https://github.com/webpack/webpack/blob/2151f56ae73b35722c56432c9b34820626d72e53/lib/NormalModule.js#L879
If the current behavior is a bug, please provide the steps to reproduce.
Clone https://github.com/7rulnik/webpack-repro-13361 and run yarn && yarn webpack

What is the expected behavior?
I don't quite follow the logic of clearDependenciesAndBlocks, but I thing that it should contain check for dependencies.length

Other relevant information:
webpack version: 5.36.2
Node.js version: v14.15.4
Operating System: MacOS 11.3 M1

Please prefer to use Discussions in future for questions, otherwise we will not be able to fix real problems in a timely manner. What do you want achieve, can you provide more information? You can use parser.hooks to handle something and add dependencies

@alexander-akait the only reason why I decided to create an issue, not a question in discussions, because that implementation based on Tobias's own comment. Also, it works in webpack 4 and I didn't find anything related to this change in changelog. So this is why I raised this issue.
I also understand that this can be worked around by adding a dependency to parser.hooks, for example, ConstDependency.

I think I was wrong. buildModule doesn't work. You need to use parser hooks to add dependencies...

@sokra so if it's intended behaviour let's close this issue?

@7rulnik I think yes, parser.hooks is good place for dependencies

For anyone who ran into similar problem and wondering how parser.hooks can be use to modify module.
The trick is accessing module using parser.state.module inside a parser.hooks.program.tap(...)


This PR cleaned up some files and includes the renaming feature

This PR is stale. Changes have been merged in a separate PR.


[FEAT] Make the happy path as growing animation for all elements

  Open in CodeSandbox Web Editor | VS Code

Closes #6
https://user-images.githubusercontent.com/4921914/187209013-8fb7be64-998c-4a36-9f93-5644413fc370.mov

⚠ the effect on the path (color fill order) is not the same as before
https://user-images.githubusercontent.com/27200110/187238400-f2fca92b-ce73-4370-a108-f460f855d8f8.mp4


Create convenience script for updating uStreamer settings

This PR does 2 things:

This forces ansible to dump any custom ansible variables (i.e. not equal to their defaults) to a settings file.
Adds a script to change ustreamer settings (and eventually any settings) by running plays that change config files.

The reason why I needed to do #1 instead of just running ansible-role-ustreamer directly, is that it has no idea of the install vars set in the quick-install script and custom vars set in the ansible-role-tinypilot ustreamer task. This results in the ustreamer using non-tinypilot default values.
The only way I can think of solving this is by making ansible-role-tinypilot dump the settings that was used to provision the device, to the settings file (/home/tinypilot/settings.yml). That way any other ansible playbook can read the settings and maintain the correct settings.
@mtlynch based on your feedback over email, the caller of the playbook can still decide to pass in --extra-vars via the cli (including the settings file dump of the previous provision).
The reason why I still think this might be a good option is because:

With this change, ansible-role-tinypilot doesn't read in any (additional) settings file and the playbook caller still has control over what settings it passes the role.
We use ansible to provision the device which means all the decisions to be made around which config to apply should live with ansible.
That being said, the TinyPilot application can still make changes to the settings file and it will decide which settings to pass to ansible again.

Outstanding changes

Add quiet mode to convenience script
Finalize tags in ansible-role-ustreamer
Fix a bug where there is no video stream in the web UI

Issues

Debugging ansible tasks all day is very time consuming.
I often find myself in a "nothing is working & I'm not sure what changed" state when fiddling with ansible settings. I then reinstall from master and try again.

Fixes #110

Sorry, I think I should have done a better job specifying it.
The thing we need is actually much simpler than what this PR does. We shouldn't need to run the tinypilot Ansible role at all. I think the script works if we just execute the one play we need and its two subsequent handlers.
I updated the bug description to provide more details.
The good news is that I think the version we need is going to be way less tedious to test because it should run in a few seconds.

Okay sorry about the confusion. I went back to basics and just did what the task said 😅

Fix a bug where there is no video stream in the web UI

I still had this bug after reverting (some of) my code. The issue was that the ansible uStreamer role did not have default values that work out the box. Specifically the ustreamer_interface & ustreamer_port. We only set this in the ansible TinyPilot role, so running the uStreamer role directly caused the video to break.
Demo video.


No funds / payment with TE upgrade

/adminpay user 1000 doesn't prompt any display from TE.
/setbal user 1000 states that the balance has been set to it.
/baltop shows all players are at 0.
I have a custom currency symbol if that matters - running TotalEconomy 1.5.3 and I believe SpongeForge 1.10.2 2221 5.2.0 Beta 2226.

Please pin your configuration files and make sure that you checked the recipients chat for too.
You may also try out the latest dev release in a testing environment to see if the issue is reproducible.

It is within a testing environment. Functions this way every time.
There is some confusion somewhere as I'm getting the message "Your salary of β20 has just been paid." yet there is no money being attributed to any account.
Just upped to 1.6.0 in TE and still nada.
As the balance wipe happened after I upgraded to the latest Sponge, I imagined that that's the issue here. But a rollback to SpongeForge-1.10.2-2221-5.1.0-BETA-2142.jar and TE 1.5.3 still fails.
Running just:
TotalEconomy-v1.5.3.jar
Spongeforge-1.10.2-2221-5.1.0-BETA-2142.jar
Pixelmon-1.10.2-5.0.1-universal.jar
===
currency-plural=beli
currency-singular=beli
features {
jobs {
enable=true
notifications=true
permissions=true
salary=true
}
shopkeeper=true
}
startbalance=3000
symbol=β
===
Fisherman {
catch {
cod {
expreward="25"
pay="50"
}
pufferfish {
expreward="250"
pay="300"
}
salmon {
expreward="100"
pay="150"
}
}
disablesalary=false
permission="main.job.fisherman"
salary=20
}
Lumberjack {
break {
leaves {
expreward="1"
pay=".01"
}
log {
expreward="10"
pay="1"
}
}
disablesalary=false
permission="main.job.lumberjack"
place {
sapling {
expreward="1"
pay="0.10"
}
}
salary=20
}
Miner {
break {
"coal_ore" {
expreward="5"
pay="0.25"
}
"diamond_ore" {
expreward="100"
pay="25.00"
}
"emerald_ore" {
expreward="50"
pay="12.50"
}
"gold_ore" {
expreward="40"
pay="5.00"
}
"iron_ore" {
expreward="10"
pay="0.50"
}
"lapis_ore" {
expreward="20"
pay="4.00"
}
"quartz_ore" {
expreward="5"
pay="0.15"
}
"redstone_ore" {
expreward="25"
pay="2.00"
}
}
disablesalary=false
permission="main.job.miner"
salary=20
}
Unemployed {
disablesalary=false
salary=20
}
Warrior {
disablesalary=false
kill {
creeper {
expreward="10"
pay="1.00"
}
skeleton {
expreward="10"
pay="1.00"
}
spider {
expreward="10"
pay="1.00"
}
zombie {
expreward="10"
pay="1.00"
}
}
permission="main.job.warrior"
salary=10
}
jobs="Miner, Lumberjack, Warrior, Fisherman"
preventJobFarming=true
salarydelay=300
===
"0514cfac-92dd-3f40-b291-602e44579279" {
dollar-balance=3080
job=Unemployed
jobnotifications=true
}
"28bf3b59-74b9-351a-a66a-661ee4ff84b3" {
dollar-balance=5220
job=Unemployed
jobnotifications=true
}
"4becbe9a-914c-38e6-90b1-485b47558329" {
dollar-balance=10580
job=Unemployed
jobnotifications=true
}
"6621cd29-b00b-352e-8303-2368da17d263" {
dollar-balance=3020
job=Unemployed
jobnotifications=true
}
"81491c57-7749-45d3-9636-c997eee78d20" {
dollar-balance=3360
job=Unemployed
jobnotifications="true"
}
"8451b398-5341-3253-9351-20ec4eed9aab" {
dollar-balance=3020
job=Unemployed
jobnotifications=true
}
"9fc406cb-e9b7-44e4-b046-55ad7addfcc0" {
dollar-balance=4720
job=Unemployed
jobnotifications="true"
}
c0d6090f-3931-3aa6-9ce0-73e6e4310c7d {
dollar-balance=406.57
job=Unemployed
jobnotifications=true
}
cbe5a4da-6a75-3f23-8280-03d4de2474eb {
dollar-balance=3000
job=Unemployed
jobnotifications=true
}
fcb45a1e-5971-3981-ba8f-000a5ffd849c {
dollar-balance=7100
job=Unemployed
jobnotifications=true
}

Change your currency settings back to Dollar/Dollars and '$' as Symbol and check if it's working again as it's been the case in #118. If so, I'll check if I can confirm/fix the bug.

This is an issue with the currency name you are using. If you notice in the accounts.conf you have dollar-balance but your currency name is beli in the main configuration file. The easiest way to fix this, without deleting configuration files, is to find and replace all occurences of dollar with beli.

@Erigitic if the beli-balance isn't found, shouldn't TE create the nodes upon balance changes? If so, shouldn't there be ?dollar-balance and beli-balance nodes?

Also by the way: What do you think about grouping this too? I think of a node that would look like this:
"<UUID>" {
  balance {
    beli=200
    dollar=4000
    coins=8000
  }
}

I could imagine this to be useful to admins with multiple currencies on their server (Servers with multiple nations for example) since this puts all currencies under the same node.

Yep ^_^
Thanks muchly - alteration of dollar to beli solved it.
Don't think I'd ever have thought to do that.
Not really the place for this, but Mark's idea for multiple currency nodes is a nice one - opens up the plugin quite a lot. Maybe factor in exchange rates?  Total World Economy ;)

@AsylumDreams Make sure to check if new accounts are created correctly and if all payment types work.

@MarkL4YG That would be a smart thing to do instead of the current implementation. I'll go ahead and make an issue for this so it can be added in a later release.


Error setting up entry Vantage InFusion for vantage -  File "/config/custom_components/vantage/init.py", line 64

System Health details
System Information

version
core-2024.1.3

installation_type
Home Assistant OS

dev
false

hassio
true

docker
true

user
root

virtualenv
false

python_version
3.11.6

os_name
Linux

os_version
6.1.63-haos-raspi

arch
aarch64

timezone
America/Toronto

config_dir
/config

Home Assistant Community Store

GitHub API
ok

GitHub Content
ok

GitHub Web
ok

GitHub API Calls Remaining
4913

Installed Version
1.33.0

Stage
waiting

Available Repositories
1376

Downloaded Repositories
5

HACS Data
ok

Home Assistant Cloud

logged_in
true

subscription_expiration
February 12, 2024 at 7:00 PM

relayer_connected
true

relayer_region
us-east-1

remote_enabled
true

remote_connected
true

alexa_enabled
true

google_enabled
true

remote_server
xxxxxxxx

certificate_status
ready

instance_id
xxxxxxx

can_reach_cert_server
ok

can_reach_cloud_auth
ok

can_reach_cloud
ok

Home Assistant Supervisor

host_os
Home Assistant OS 11.4

update_channel
stable

supervisor_version
supervisor-2023.12.0

agent_version
1.6.0

docker_version
24.0.7

disk_total
57.3 GB

disk_used
6.0 GB

healthy
true

supported
true

board
rpi4-64

supervisor_api
ok

version_api
ok

installed_addons
Advanced SSH & Web Terminal (17.0.3), Mosquitto broker (6.4.0), File editor (5.7.0), Studio Code Server (5.15.0)

Dashboards

dashboards
3

resources
0

views
3

mode
yaml

Recorder

oldest_recorder_run
January 13, 2024 at 9:54 PM

current_recorder_run
January 13, 2024 at 8:49 PM

estimated_db_size
1.44 MiB

database_engine
sqlite

database_version
3.41.2

Checklist

[X] I have enabled debug logging for my installation
[X] I have filled out the issue template to the best of my ability
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue)
[X] This issue is not a duplicate of current issues

Describe the issue
After adding the IP in the Config Host, this is as far as it gets.   It says "Failed Retry"
Reproduction steps

See above

...
Debug logs
Here is the debug log.

2024-01-13 20:45:51.527 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Vantage InFusion for vantage
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/vantage/__init__.py", line 64, in async_setup_entry
    await vantage.initialize()
  File "/usr/local/lib/python3.11/site-packages/aiovantage/__init__.py", line 272, in initialize
    await asyncio.gather(
  File "/usr/local/lib/python3.11/site-packages/aiovantage/controllers/base.py", line 160, in initialize
    await self.fetch_object_state(obj.id)
  File "/usr/local/lib/python3.11/site-packages/aiovantage/controllers/gmem.py", line 30, in fetch_object_state
    "value": await self.get_value(vid),
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiovantage/controllers/gmem.py", line 61, in get_value
    raw_value = response.args[1]
                ~~~~~~~~~~~~~^^^

Diagnostics dump
No response

Hey there, could you please tell me what model of inFusion Controller you have, and what firmware version is on the controller? I'm guessing this is a very old firmware version.


Resolve forever pending state on home screen

This has been reported a couple of times in the past 24 hours, from one user who says they had to sign out and back in to resolve it, and from another who doesn't want to sign out because they haven't saved their Secret Key yet.
I asked one of the users to provide developer console and network information, but nothing unusual seems to appear.
One has 60 accounts and I assume the other has many as well, in case relevant.

This'll be tricky to debug unless we get more info than this or can repro ourselves

Hey,
I've been facing that issue , can you let me know which information do you need

We've pushed a new release, v3.18.2 which may fix the issue. When this is in the Chrome store, probably in a couple of hours, would you be able to test again @kxshagra ?

ohh ty for pushing update soo quick , I'll let you know if it's fixed or not when new release is be up

I tried the new update but still it isn't fixed , I'm still getting that loading screen

@kxshagra We're looking into adding some diagnostic capabilities that will help us debug this issue for you further: https://github.com/hirosystems/stacks-wallet-web/issues/2727

yeah sure , I'm ready to jump on a call


UI Bug While logging in

Read our guide on bug reports here
Actual Behaviour
Right now the Sign In and LOG IN text is not center aligned
Expected Behaviour
The text of Sign In and LOG IN should be center aligned
Would you like to work on the issue?
Yes I would love to work on this issue

@nikhilbalyan Actually this will be taken care of in #392

@Sam1301 ok closing then my bad


Including files support

This is still a work in progress--
In our deployments, we'd like to include files, such as javadoc or sources or stubs. I was inspired by this issue on Patrick's upstream repository.
An example is included below.
If your artifact/ folder contains the artifact & other files, you'll probably need to change your file: glob pattern to specifically match only the artifact.
- put: maven-milestone
    params:
      # matches only on some-artifact-name-0-0-1.beta.12.jar
      file: artifact/((artifact.artifactId))-*[0-9].*[0-9].*[0-9]-beta.*[0-9].jar
      files:
      - file: artifact/((artifact.artifactId))-*-stubs.jar
        classifier: stubs
        type: jar
      - file: artifact/((artifact.artifactId))-*-javadoc.jar
        classifier: javadoc
        # Since it's ubiquitous, I have 'jar' set as default for 'type'.
      - file: artifact/((artifact.artifactId))-*-sources.jar
        classifier: sources
      - file: artifact/((artifact.artifactId))-*-diagram.pdf
        classifier: diagram
        type: pdf
      pom_file: project/pom.xml
      version_file: version/version

Unfortunately, my Bash skills are... ah, "in development", and I haven't been able to add unit tests.  I'm sure there's room for improvement in my work, so I welcome any & all feedback.
Here's the docker image I'm using for my changes: https://hub.docker.com/r/aegershman/maven-resource-with-classifiers/

This still proves problematic for in and check. The artifact is configured in the resource source block, which is what allows in & check to pull a single artifact's information from the specified repository.
I'm thinking files: would need to be configured as a param the source block rather than as a param on get or put.
For example, for the in script, you would need to iterate over the list of extra files: and run ./mvnw dependency:copy $args for every extra artifactItem you specified.


Left join on expression

Is your feature request related to a problem? Please describe.
I'm trying to construct a query where I'm pulling a list of posts. For each post, I want to also join to the most recent comment if it exists.
Describe the solution you'd like
I would like to be able to do something like this:
const recent = em
  .createQueryBuilder(Comment)
  .select('id')
  .limit(1)
  .orderBy({
    timestamp: QueryOrder.DESC
  })
  .where({
    post: knex.ref('p.id')
  });
const qb = em
  .createQueryBuilder(Post, 'p')
  .leftJoinAndSelect('comments', 'c', {
    'c.id': recent
  });

Describe alternatives you've considered
Using raw knex, it's still a bit difficult to do joins via subqueries.
Also tried passing the underlying sql query:
const qb = em
  .createQueryBuilder(Post, 'p')
  .leftJoinAndSelect('comments', 'c', {
    'c.id': recent.getKnexQuery().toQuery()
  });

Additional context
The above sample code very nearly works, the issue is that the condition it generates for the subquery is quoted.
select "c"."id" as "c__id", "c"."post_id" as "c__post_id", "c"."timestamp" as "c__timestamp" from "post" as "p" left join "comment" as "c" on "p"."id" = "c"."post_id" and "c"."id" = 'select "e0"."id" from "comment"
as "e0" where "e0"."post_id" = "p"."id" order by "e0"."timestamp" desc limit 1'

Replacing the quotes with parentheses fixes the query and all is well.

When working with subqueries, it should be a knex instance, not a string query. Try this instead:
const qb = em
  .createQueryBuilder(Post, 'p')
  .leftJoinAndSelect('comments', 'c', {
    'c.id': recent.getKnexQuery()
  });

This might also work:
const qb = em
  .createQueryBuilder(Post, 'p')
  .leftJoinAndSelect('comments', 'c', {
    'c.id': recent.raw(recent.getFormattedQuery())
  });

You're absolutely right and was sure that I had tried that.
recent.getKnexQuery() does the trick. Thanks.


New version?

It's been a while since the last release, maybe it's time to make a new one?

is this project dead?

I think Nick (@GUI) has been pretty busy this year with his Covid-19 vaccine tracker. Maybe we should elect an extra maintainer to support him?

I would gladly support this project financially if there was an option to do so...open collective or what have you

so I guess this project is dead...I'll be migrating all our systems off of it...it's a shame

so I guess this project is dead...I'll be migrating all our systems off of it...it's a shame

Is there a more up to date project that provides the same features as this one?

Works like a charm, almost the same config as this project.


Release 0.10.4

Release Notes
This is a bugfix release that solves includes notarization for macOS Catalina (https://github.com/ipfs-shipyard/ipfs-desktop/issues/1211)

Web UI: v2.7.2
IPFS: go-ipfs v0.4.23

✨  Features
🛠 Fixes and Maintenance

[x] remove security warning on macOS (add notarization) (https://github.com/ipfs-shipyard/ipfs-desktop/issues/1211)
[x] debian 10: ipfs-desktop > Trace/breakpoint trap (https://github.com/ipfs-shipyard/ipfs-desktop/issues/1362)

fix: chrome-sandbox and Debian 10 (#1370)

Before Release

[x] Make sure there are no regressions in file upload

no change: known issue with adding folders remains https://github.com/ipfs-shipyard/ipfs-desktop/issues/1287#issuecomment-580368657

[x] Make sure i18n is updated (tx pull -a)
[x] Make sure we're using the latest released version of Web UI
[x] Make sure we're using the latest released version of go-ipfs
[x] Update Release Notes accordingly

Release

[x] 📝 Create draft and copy the release notes above
[x] 💻 Bump version in package.json
[x] 💻 git tag $version
[x] 💻 git push && git push --tags
[x] ⏰ Wait for CI to attach artifacts to release draft...
[x] 📃 Copy the final release notes to the GitHub release

[x] Linux smoke test (.tar.xz)

[x] confirm .deb works in Debian 10

[x] Mac smoke test (.dmg)

[x] ❗ perform .dmg notarization with pkgs/macos/notarize-cli.js

[x] Window smoke tests (.exe)

[x] 🚢 Ship! (publish draft as a real GithHub release)
[x] 📑 Update README.md versions
[ ] 📦 Update Homebrew (instructions)
[ ] 📦 Update Chocolatey

@Luflosi would you have a spare moment to bump homebrew-cask to 0.10.4? :pray:

Done.


Created by Northdecoder

My efforts for the 11/13/2021 Code-Tacoma meetup.

Reference: :link:

Address issue #34

Hey thanks for the awesome pr! Sorry this took so long to merge!


Suggestion: More principled lr() allowing for inner delimiters

Description
I suggest making lr() take the delimiters as separate arguments: $ lr("(", a^2, ")")$, or introducing a function delim that does this. This would allow for easy integration of middle delimiters: $ delim("{", x, "|", x in NN, "}") $, which is a feature I also suggest.
Use Case
In set theory, set comprehensions are often written with a middle bar which should resize to the size of the outer delimiters.

Thanks for the suggestion! Appears to be a duplicate of https://github.com/typst/typst/issues/240, though, which had a lengthier discussion


fix: DoValue example in README

coverage: 100.0%. remained the same
when pulling d917f5ccd83a90aaad785f6cd39af5001daa421a on fix-do-value-example-in-readme
into 401e1df43cdd5f2e115707f39660d65b4be49f38 on main.


add publication without submit on user

Add publication without submit on user
Add new variable isSubmitOnUser (default: true).If set it false - submit not performing

+1
Just can't use plugin without this awesome feature

@destanyinside Hi! Nice feature. Could you move your PR target on develop branch instead of master?

@cosic Changed

@destanyinside @zhelanov The new release v1.0.1 has already available.


Add fee stats to the summary

Uses API of the indexer which was updated in https://github.com/CodeChain-io/codechain-indexer/pull/238


Make it easier to deploy with argo

Adding a simple script to help make it easy to deploy policies with argocd.

/hold


Update mrlearning-base-ch1.md

Docs Build status updates of commit 84bf519:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/mrlearning-base-ch1.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Merge Overlapping Subintervals

🚀 Feature
Given a collection of intervals, merge all overlapping intervals.
Have you read the Contributing Guidelines on Pull Requests?
Motivation
This question will help to improve the thinking style of your in programming.
Pitch
(Please explain why this feature should be implemented and how it would be used.)

@Abhijit2505
I want to provide an optimum solution for it.please assign me this.

please add a label on it. @plazzy99

@Abhijit2505 I want to do it in java. please assign me.

@Kajol-Kumari @SKAUL05 @Abhijit2505 @plazzy99 @siddharth25pandey
Can you please assign this issue to me. I would like to contribute in C++. Thank you!

@Ishita1608 please elaborate for issue

Done! Please add difficulty level and CH20 Label.
@plazzy99

@plazzy99 I would like to contribute in C++.Thank you!

i can do this using C

I would like to contribute in Python.Thank you!

I would like to contribute in Python.Thank you!

@plazzy99

Assigning to following according to languages:
C: @MohammadSameer08
C++: @DrSehgal7
Java: @Ishita1608
Python: @Nagasuruthika

@plazzy99 can you please add CH20 label here.


Upgrade CosmJS to ^0.28.2 and re-export normalizeBech32

After #48

@webmaster128  https://github.com/cosmos/cosmjs/blob/main/packages/encoding/src/index.ts It's not exported here, probably missing in https://github.com/cosmos/cosmjs/pull/1113 ?

Ouch, yes. Will do now.


Fix typos and duplicate sections in config.example.js

Other changes:

Added meet_roles to the local authentication to make it more
obvious it needs to be configured together with certain userMapping
examples.

Many thanks!

@so010 Many thanks for approving and merging this.  There is one nit, however, I'd like ask about.  I'm only now beginning to learn JavaScript and I was unaware that Truthy, really existed, was a valid term and actually more precise than true in this context.
Do we want to revert this change I made or do you think that true might be less confusing to users and we should leave this as is now even though Truthy is more precise?  Many thanks and my apologies for my ignorance about Truthy/Falsy.


Lăpugiu De Jos/Lăpugiu De Sus, Hunedoara - Are not written correctly

ENVIROMENT: ui.orase
URL: https://peviitor-ro.github.io/ui.orase/
Browser: Chrome
Device: Laptop
OS: Windows 7
STEPS TO REPRODUCE:

Open URL in browser
Type "Lăpugiu De Jos" in the search bar (/Lăpugiu De Sus)
Select Lăpugiu De Jos, Hunedoara from the list (/Lăpugiu De Sus, Hunedoara (Lăpugiu De Jos))

EXPECTED RESULTS:
The name of the locality written in the search bar is written correctly based off the law nr. 167/1929
https://legislatie.just.ro/Public/DetaliiDocument/189
ACTUAL RESULTS:
The name of the locality written in the search bar is not written correctly based off the law nr. 167/1929

Fixed! Poti retesta

Mai trebuie modificat si la localitatea de care apartine, adica ce este in paranteza.

Fixed! Poti retesta


Change wallet to username

To avoid misunderstanding and align with the standard pool configuration the wallet must became pool's hostname.
pools uses different combos of username / wallet configuration and to support all of them
we must use standard convention.

/cib


add tests for status markers

I used GoConvey because it has an automatic test run on file changes plus assert library.
I looked at stubbing or mocking the Jenkins struct but it seems like it has a bit of complexity I don't totally understand. Have you thought about how you might test this?
The status output seemed like a simple win.

I used GoConvey because it has an automatic test run on file changes plus assert library.

That looks really nice. Didn't use it before.

Have you thought about how you might test this?

Not really. Apart from the obvious integration tests we could do, mocking the go-jenkins struct might in fact be the way to go.
Another idea is to wrap the Jenkins struct inside our own struct as conn and simply pass a dummy conn when we are testing.
type Jenkins struct {
  conn *gojenkins.Jenkins
}

But then we end up implementing the exact same methods on our custom type and we also have to copy over the structs from go-jenkins.
I'd have to think about this some more, but if you want to give it a shot, go ahead. I'm sure we'll figure something out along the way. Feedback welcome.

Can you merge the master into your branch?

Huh? Works for me. All tests are passing.
Did you run git merge origin master and then fix the merge conflicts? Make sure that origin points to my repo. 😉
You can take a look at my branch here, where I fixed the merge conflicts:
https://github.com/mre/riffraff/tree/reintegrate-master
If you like, you can also merge this branch (git merge origin reintegrate-master) and we should be good. 😊

yay. fixed merge conflicts. thanks for your help :smile:

Tried to fix the error with the missing package, but to no avail. If anybody has a clue what's going on, help would be much appreciated. 😉

i had this issue on my computer when i was trying to use testify but the issue wasn't with testify.
https://github.com/stretchr/testify/issues/214#issuecomment-429477498
the problem is not with the dependencies but because I was using Go modules inside my $GOPATH. i moved the riffraff project out of $GOPATH and everything worked again.
maybe we need to change something here:
$ mkdir -p ${TRAVIS_HOME}/gopath/src/github.com/mre/riffraff
$ tar -Pczf ${TRAVIS_TMPDIR}/src_archive.tar.gz -C ${TRAVIS_BUILD_DIR} . && tar -Pxzf ${TRAVIS_TMPDIR}/src_archive.tar.gz -C ${TRAVIS_HOME}/gopath/src/github.com/mre/riffraff
$ export TRAVIS_BUILD_DIR=${TRAVIS_HOME}/gopath/src/github.com/mre/riffraff
$ cd ${TRAVIS_HOME}/gopath/src/github.com/mre/riffraff

it looks like the goconvery dependency is only defined in the modules file. So either https://github.com/mre/riffraff/pull/20 needs to be fixed/merged to add module support to the Travis build or the dependency can be declared in the Makefile temporarily.

Yeah, I think #20 is the way to go. I was doing it wrong somehow, but I don't have time to look into it right now. Added a comment over there for things to try. If you have time, give it a shot if you like. 😉

With #20 being merged, could you merge the master to see if the build passes now @iampeterbanjo?
@rking788, should work right?

This was now merged after being rolled up in #34. Thanks for your contribution @iampeterbanjo. ⭐
P.S.: Decided to remove the dependency on goconvey again, because it requires https://github.com/jtolds/gls, which did not build on Go master.


MRG add load_HXn to datasets

adding HXn loaders

This is a straightforward addition and it works on my machine. HAven't had time yet to think of a testing framework for dataset downloaders, but should quite soon work to adopt that of nilearn

load_HXn works just fine for me on my machine as well


Event publishing inside long procedure gets blocked

My goal is that I want my long procedure to publish an event just before starting.
I have the following Python code (using Twisted, Python 2.7):
import time
from autobahn.twisted import component

class MyClass(object):

    def __init__(self, session):
        self.session = session

    def my_long_procedure(self):
        self.session.publish(u"topic")
        time.sleep(5) # Waiting 5 seconds to simulate long procedure

def on_join(session, _):
    session.register(MyClass(session).my_long_procedure, u"my_procedure")

if __name__ == "__main__":
    comp = component.Component(transports=u"ws://localhost:9000", realm=u"realm")
    comp.on_join(on_join)
    component.run([comp])

The issue is that my event gets blocked until the procedure actually finishes (the 5 seconds have passed). An example showing the problem is the following Autobahn|JavaScript code:
var autobahn = require('autobahn')

var connection = new autobahn.Connection({
	url: "ws://localhost:9000",
	realm: "rie.manager"
});

connection.onopen = function(session) {
	console.log("Successfully Connected");
	var startTime = new Date().getTime();

	session.subscribe("event", () => {
		var duration = (new Date().getTime() - startTime) / 1000
		console.log("Event got thrown after " + duration + " seconds");
	});

	session.call("my_procedure").then(() => {
		var duration = (new Date().getTime() - startTime) / 1000
		console.log("Long procedure finished after " + duration + " seconds");
	});
};
connection.open();

gives the following result:
Successfully Connected
Event got thrown after 5.016 seconds
Long procedure finished after 5.016 seconds

You would expect the event get thrown right at the start, but it gets blocked until the procedure finishes. I don't have the issue when I register the procedure in a similar way using Autobahn|Javascript
connection.onopen = function(session) {
	wait = function(ms) {
		start = new Date().getTime();
		var end = start;
		while (end < start + ms) {
			end = new Date().getTime();
		}
	};

	session.register("my_procedure", () => {
		session.publish("event");
		wait(5000);
	});
};

This gives the following output on the client:
Successfully Connected
Event got thrown after 0.003 seconds
Long procedure finished after 5.005 seconds

To make my procedure even nicer in JavaScript, I could return a Promise, rather than making the procedure blocking:
	session.register("my_procedure", () => {
		session.publish("event");
		return new Promise(function(resolve, reject) {
			setTimeout(resolve, 5000);
		});
	});

So my question is:
Is there a way in Autobahn|Python to publish an event at the start of a long blocking procedure? Or allow the procedure to return a Deferred similar to how returning a Promise is allowed in Autobahn|JavaScript?

Found a fix, using twisted's @inlineCallback decorator does the trick.


Revert 1 animate speedless fans upstream

undo this so i can merge my own changes in first before merging this one

why is this here. no no no


Show all sectors of a tower again

This GitHub page is more for the API than the Netmonster app directly, but still:
In the past Netmonster showed all sectors of a selected cell tower in the map screen. In an update that feature was removed and replaced by only showing logged sectors at a tower.
It was great to look in the map what sectors there are.
Now the app still knows all that through its databases, but does not show it to the user in that great extent.
Could this be added in again?

NetMonster-exclusive issues do not really belong here. Feature you are mentioning is still present. Maybe you expect to see all sectors but NetMonster shows only logged ones since querying over whole DB of imported cells takes ages.


Scrape w3 for ipfs uris and write them to disk

What was wrong?
CLI command needed to scrape blockchain for VersionRelease events - grab version release data - and write any emitted ipfs assets to disk
How was it fixed?
Wrote Scraper class that takes a web3 instance and scrapes for VersionRelease data, writing any found data to disk.
Cute Animal Picture

@pipermerriam Here's a little more on the structure of the data stored, it's more or less just the minimum I thought I needed to get things working
https://gist.github.com/njgheorghita/1ed9e6e061a5a84354cf08bc8d32812b

Updated ipfs assets dir structure
- 'ipfs/'
    - 'chain_data.json'
    - 'Qm/'
        - 'be/'
            - ...
        - 'dv/'
            - 'ZEW3AaUntDfFkcbdnYzeLAAeD4YFeixQsdmHF88T6Q/'
                - 'QmdvZEW3AaUntDfFkcbdnYzeLAAeD4YFeixQsdmHF88T6Q'

What about separating the scraping of registry addresses into a separate utility?  Feel free to punt on that and keep things as-is for now if it's useful to you.
For directory structure I'd go one level deeper with Qm/dv/ZE/QMdvZEW3.....  The extra level of namespacing is cheap and it is a huge PITA when you get a directory with way too many things in it because at a certain point ls stops working.
As for metadata, are we still scraping the files, just not storing information about what file is what?  As long as we're pulling the contract source files and dependency manifests I think we're :+1: .  Not pulling dependencies is probably a no-go since without the dependencies a package is likely useless.

What about separating the scraping of registry addresses into a separate utility? Feel free to punt on that and keep things as-is for now if it's useful to you.

Sounds good - I'll open up a new pr to handle that task.

For directory structure I'd go one level deeper with Qm/dv/ZE/QMdvZEW3.....

👍

As long as we're pulling the contract source files and dependency manifests I think we're 👍 .

We're 👍

giving one last :eyes:


URL Cleanup

This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

[ ] http://www.eddieware.org/EPL (301) with 1 occurrences could not be migrated:
(https result SSLHandshakeException).

Fixed URLs
Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

[ ] http://bugs.sun.com/view_bug.do?bug_id=6682380 (302) with 1 occurrences migrated to:
https://bugs.java.com/view_bug.do?bug_id=6682380 (https result SSLHandshakeException).
[ ] http://static.springsource.org/spring-amqp/reference/html/amqp.html (301) with 2 occurrences migrated to:
https://docs.spring.io/spring-amqp/reference/html/amqp.html (https result 404).
[ ] http://static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html (301) with 2 occurrences migrated to:
https://docs.spring.io/sts/docs/latest/reference/html/gradle/installation.html (https result 404).

Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

[ ] http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css with 1 occurrences migrated to:
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css (https result 200).
[ ] http://docs.spring.io/spring-amqp/docs/latest-ga/api/org/springframework/amqp/core/MessageProperties.html with 1 occurrences migrated to:
https://docs.spring.io/spring-amqp/docs/latest-ga/api/org/springframework/amqp/core/MessageProperties.html (https result 200).
[ ] http://static.springsource.org/spring-amqp/docs/latest_ga/api/org/springframework/amqp/rabbit/core/RabbitTemplate.html (301) with 1 occurrences migrated to:
https://docs.spring.io/spring-amqp/docs/latest_ga/api/org/springframework/amqp/rabbit/core/RabbitTemplate.html (https result 200).
[ ] http://static.springsource.org/spring-amqp/docs/latest_ga/api/org/springframework/amqp/rabbit/transaction/RabbitTransactionManager.html (301) with 1 occurrences migrated to:
https://docs.spring.io/spring-amqp/docs/latest_ga/api/org/springframework/amqp/rabbit/transaction/RabbitTransactionManager.html (https result 200).
[ ] http://docs.spring.io/spring-amqp/reference/ with 1 occurrences migrated to:
https://docs.spring.io/spring-amqp/reference/ (https result 200).
[ ] http://static.springsource.org/spring-retry/docs/api/current/ (301) with 1 occurrences migrated to:
https://docs.spring.io/spring-retry/docs/api/current/ (https result 200).
[ ] http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/oxm.html (301) with 1 occurrences migrated to:
https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/oxm.html (https result 200).
[ ] http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/htmlsingle/spring-framework-reference.html (301) with 2 occurrences migrated to:
https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/htmlsingle/spring-framework-reference.html (https result 200).
[ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/transaction/PlatformTransactionManager.html (301) with 1 occurrences migrated to:
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/PlatformTransactionManager.html (https result 200).
[ ] http://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700 with 1 occurrences migrated to:
https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700 (https result 200).
[ ] http://github.com/spring-projects/spring-amqp with 1 occurrences migrated to:
https://github.com/spring-projects/spring-amqp (https result 200).
[ ] http://github.com/spring-projects/spring-amqp-samples with 1 occurrences migrated to:
https://github.com/spring-projects/spring-amqp-samples (https result 200).
[ ] http://gradle.org/ with 2 occurrences migrated to:
https://gradle.org/ (https result 200).
[ ] http://projects.spring.io/spring-amqp/ with 2 occurrences migrated to:
https://projects.spring.io/spring-amqp/ (https result 200).
[ ] http://stackoverflow.com/questions/tagged/spring-amqp with 3 occurrences migrated to:
https://stackoverflow.com/questions/tagged/spring-amqp (https result 200).
[ ] http://www.amqp.org/ with 2 occurrences migrated to:
https://www.amqp.org/ (https result 200).
[ ] http://www.amqp.org/resources/download with 1 occurrences migrated to:
https://www.amqp.org/resources/download (https result 200).
[ ] http://www.apache.org with 1 occurrences migrated to:
https://www.apache.org (https result 200).
[ ] http://www.rabbitmq.com/ with 2 occurrences migrated to:
https://www.rabbitmq.com/ (https result 200).
[ ] http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/ with 1 occurrences migrated to:
https://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/ (https result 200).
[ ] http://www.rabbitmq.com/blog/2013/12/16/using-consumer-priorities-with-rabbitmq/ with 1 occurrences migrated to:
https://www.rabbitmq.com/blog/2013/12/16/using-consumer-priorities-with-rabbitmq/ (https result 200).
[ ] http://www.rabbitmq.com/direct-reply-to.html with 3 occurrences migrated to:
https://www.rabbitmq.com/direct-reply-to.html (https result 200).
[ ] http://www.rabbitmq.com/download.html with 2 occurrences migrated to:
https://www.rabbitmq.com/download.html (https result 200).
[ ] http://www.rabbitmq.com/how.html with 1 occurrences migrated to:
https://www.rabbitmq.com/how.html (https result 200).
[ ] http://www.rabbitmq.com/semantics.html with 1 occurrences migrated to:
https://www.rabbitmq.com/semantics.html (https result 200).
[ ] http://www.rabbitmq.com/ttl.html with 1 occurrences migrated to:
https://www.rabbitmq.com/ttl.html (https result 200).
[ ] http://www.rabbitmq.com/tutorials/tutorial-six-java.html with 1 occurrences migrated to:
https://www.rabbitmq.com/tutorials/tutorial-six-java.html (https result 200).
[ ] http://www.sonarsource.org/ (301) with 2 occurrences migrated to:
https://www.sonarqube.org/ (https result 200).
[ ] http://www.springframework.org/schema/beans/spring-beans.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans.xsd (https result 200).
[ ] http://www.springframework.org/schema/rabbit/spring-rabbit.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/rabbit/spring-rabbit.xsd (https result 200).
[ ] http://static.springsource.org/spring/docs/current/spring-framework-reference/html/remoting.html (301) with 1 occurrences migrated to:
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html (https result 301).
[ ] http://forum.springsource.org/forumdisplay.php?f=74 (301) with 2 occurrences migrated to:
https://forum.spring.io/forumdisplay.php?f=74 (https result 301).
[ ] http://github.com/SpringSource/spring-amqp with 1 occurrences migrated to:
https://github.com/SpringSource/spring-amqp (https result 301).
[ ] http://github.com/SpringSource/spring-amqp-samples with 1 occurrences migrated to:
https://github.com/SpringSource/spring-amqp-samples (https result 301).
[ ] http://help.github.com/forking/ with 2 occurrences migrated to:
https://help.github.com/forking/ (https result 301).
[ ] http://www.mozilla.org/MPL/ with 1 occurrences migrated to:
https://www.mozilla.org/MPL/ (https result 301).
[ ] http://www.rabbitmq.com/install.html with 1 occurrences migrated to:
https://www.rabbitmq.com/install.html (https result 301).
[ ] http://www.spring.io with 3 occurrences migrated to:
https://www.spring.io (https result 301).
[ ] http://www.spring.io/spring-amqp with 1 occurrences migrated to:
https://www.spring.io/spring-amqp (https result 301).
[ ] http://www.springsource.org/spring-amqp with 1 occurrences migrated to:
https://www.springsource.org/spring-amqp (https result 301).
[ ] http://www.springsource.org/spring-integration with 1 occurrences migrated to:
https://www.springsource.org/spring-integration (https result 301).
[ ] http://www.springsource.org/sts with 1 occurrences migrated to:
https://www.springsource.org/sts (https result 301).
[ ] http://www.springsource.org/node/feed with 2 occurrences migrated to:
https://www.springsource.org/node/feed (https result 302).

Ignored
These URLs were intentionally ignored.

http://host1:15672 with 1 occurrences
http://host2:15672 with 1 occurrences
http://host:port with 4 occurrences
http://localhost:11235 with 2 occurrences
http://localhost:11236 with 2 occurrences
http://localhost:15672 with 2 occurrences
http://localhost:15672/api/ with 2 occurrences
http://www.springframework.org/schema/beans with 14 occurrences
http://www.springframework.org/schema/rabbit with 16 occurrences
http://www.springframework.org/schema/tool with 12 occurrences
http://www.w3.org/2001/XMLSchema with 6 occurrences
http://www.w3.org/2001/XMLSchema-instance with 7 occurrences

Merging as is.
Broken URLs will be fixed on demand: this version is out of support already.