Current Products Hybrid ewand Gen 2 - State in HA showing unknown

Description of the issue
Supported device: https://www.zigbee2mqtt.io/devices/CP180335E-01.html
In dev tools in HA, the blind is showing the state as below:

Entity:
Blinds - Back Lounge 1
State:
unknown
State attributes (YAML, optional):
current_tilt_position: 100
battery: 51
linkquality: 255
tilt: 100
friendly_name: Blinds - Back Lounge 1
supported_features: 240
This means it is not possible to use an open or close command in automations (instead you have to use "set blinds tilt position").
It also means when sharing to Homekit, Google Home or Alexa, the tap to open close, and tap-hold to slide to tilt position is not made available, nor are you shown current open or closed state.
Need to translate the current_tilt_position to open / close states in HA, ie 100 = OPEN, 0 = CLOSED, increasing from 0-99 = OPENING and decreasing from 100-1 = CLOSING.
Thanks.
Addon version
1.26.0-1
Platform
Core: core-2022.7.2
Supervisor: supervisor-2022.07.0
Operating System: Home Assistant OS 8.2
Logs of the issue (if applicable)
No response

Do I understand correctly that this device only supports tilt and not position like normal covers do?

I can’t say I’m an expert on this.
I know that the Hubitat support for this allows open close commands as well as tilt position. Not sure how they do this.

What happens when you set the state to open/close via the z2m frontend -> click on your device -> exposes tab?

What happens when you set the state to open/close via the z2m frontend -> click on your device -> exposes tab?

My apologies for the delay. The OPEN/CLOSE buttons in the expose tab of Z2M for it work as expected.

Could you check if the issue is fixed with the following external converter:
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const utils = require('zigbee-herdsman-converters/lib/utils');
const e = exposes.presets;
const ea = exposes.access;

const fzLocal = {
    cover_position_tilt: {
        cluster: 'closuresWindowCovering',
        type: ['attributeReport', 'readResponse'],
        options: [exposes.options.invert_cover()],
        convert: (model, msg, publish, options, meta) => {
            const result = {};
            // Zigbee officially expects 'open' to be 0 and 'closed' to be 100 whereas
            // HomeAssistant etc. work the other way round.
            // For zigbee-herdsman-converters: open = 100, close = 0
            // ubisys J1 will report 255 if lift or tilt positions are not known, so skip that.
            const invert = model.meta && model.meta.coverInverted ? !options.invert_cover : options.invert_cover;
            if (msg.data.hasOwnProperty('currentPositionTiltPercentage') && msg.data['currentPositionTiltPercentage'] <= 100) {
                const value = msg.data['currentPositionTiltPercentage'];
                result.tilt = invert ? value : 100 - value;
                result.state = result.tilt === 0 ? 'CLOSE' : 'OPEN';
            }
            return result;
        },
    }
}

const definition = {
    zigbeeModel: ['E-Wand'],
    model: 'CP180335E-01',
    vendor: 'Current Products Corp',
    description: 'Gen. 2 hybrid E-Wand',
    fromZigbee: [fzLocal.cover_position_tilt, fz.battery],
    toZigbee: [tz.cover_state, tz.cover_position_tilt],
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'closuresWindowCovering']);
        await reporting.batteryPercentageRemaining(endpoint);
        await reporting.currentPositionTiltPercentage(endpoint);
    },
    exposes: [e.battery(), e.cover_tilt()],
};

module.exports = definition;

save this as file next to configuration.yaml as ext_converter.js
add it to configuration.yaml:

external_converters:
  - ext_converter.js

start z2m, check if issue is fixed

Could you check if the issue is fixed with the following external converter:

No change - but my steps just in case I've done something wrong:

Used Home Assistant addon "File Editor"
Created a file in the config/zigbee2mqtt/ folder next to configuration.yaml called ext_converter.js
Added the text exactly as above into this file, starting with "const fz = require" and finishing at "module.exports = definition;"
Saved that file
Edited the configuration,yaml file in the config/zigbee2mqtt/ folder
Added the external_converters section exactly as above.
Stopped Z2M. Started it again.
Hit the reconfigure button in Z2M for each blind
Hit OPEN then CLOSE on each blind
Checked the Entity State in Dev Tools - still shows unknown

Thanks.

I'm also seeing this in the logs:
2022-07-31T06:05:15.609Z zigbee-herdsman:deconz:adapter could not parse zclFrame: Error: Cluster '64528' has no command response '128'
2022-07-31T06:05:15.610Z zigbee-herdsman:controller:log Received 'raw' data '{"clusterID":64528,"data":{"type":"Buffer","data":[13,99,18,108,128,97,0,0,0,0,2,0,0,192,39,18,66,0,0,185,65,1,255,0,0,0,0]},"address":48529,"endpoint":1,"linkquality":255,"groupID":null,"wasBroadcast":false,"destinationEndpoint":1}'
Zigbee2MQTT:debug 2022-07-31 16:05:15: Received Zigbee message from 'Blinds - Back Lounge 3', type 'raw', cluster '64528', data '{"data":[13,99,18,108,128,97,0,0,0,0,2,0,0,192,39,18,66,0,0,185,65,1,255,0,0,0,0],"type":"Buffer"}' from endpoint 1 with groupID null
Zigbee2MQTT:debug 2022-07-31 16:05:15: No converter available for 'CP180335E-01' with cluster '64528' and type 'raw' and data '{"data":[13,99,18,108,128,97,0,0,0,0,2,0,0,192,39,18,66,0,0,185,65,1,255,0,0,0,0],"type":"Buffer"}'

To make sure the converter is loaded, I've added CUSTOM at the end of the description (https://github.com/zigbee2mqtt/hassio-zigbee2mqtt/issues/359#issuecomment-1200117159). Can you load this external converter and see if CUSTOM appears at the end of the description when clicking on the device in the z2m frontend?

To make sure the converter is loaded, I've added CUSTOM at the end of the description (#359 (comment)). Can you load this external converter and see if CUSTOM appears at the end of the description when clicking on the device in the z2m frontend?

Yes it is loading it:
Friendly name
Blinds - Back Lounge 1
Description
Last seen
N/A
Availability
Disabled
Device type
EndDevice
Zigbee Model
E-Wand
Zigbee Manufacturer
Current Products Corp
Description
Gen. 2 hybrid E-Wand CUSTOM
Support status
Supported

IEEE Address
0x847127fffe4cfa02
Network address
0x08DF
Manufacturer
Current Products Corp
Model
CP180335E-01
Power
Battery 47.5%
Interview completed
True

Also seeing this in the main Home Assistant logs:
2022-08-01 11:00:15 WARNING (MainThread) [homeassistant.components.mqtt.cover] Payload is not supported (e.g. open, closed, opening, closing, stopped): {"battery":47.5,"linkquality":255,"state":"OPEN","tilt":100}

So to test how ZHA does it I installed a seperate Zigbee stick and paired one of my ewand's to it. Here is the diagnostics output for it:
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2022.7.7",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.5",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Australia/Sydney",
    "os_name": "Linux",
    "os_version": "5.15.32-v8",
    "supervisor": "2022.07.0",
    "host_os": "Home Assistant OS 8.4",
    "docker_version": "20.10.14",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "smartthinq_sensors": {
      "version": "0.23.6",
      "requirements": [
        "pycountry>=20.7.3",
        "xmltodict>=0.12.0",
        "chardet>=4.0.0"
      ]
    },
    "watchman": {
      "version": "0.5.1",
      "requirements": [
        "prettytable==3.0.0"
      ]
    },
    "bureau_of_meteorology": {
      "version": "1.1.13",
      "requirements": [
        "iso8601"
      ]
    },
    "powercalc": {
      "version": "v0.24.5",
      "requirements": [
        "numpy>=1.21.1"
      ]
    },
    "tesla_custom": {
      "version": "2.3.1",
      "requirements": [
        "teslajsonpy==2.3.0"
      ]
    },
    "nest_protect": {
      "version": "0.3.8",
      "requirements": []
    },
    "hacs": {
      "version": "1.26.2",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "dwains_dashboard": {
      "version": "3.2.0",
      "requirements": []
    },
    "waste_collection_schedule": {
      "version": "1.24.0",
      "requirements": [
        "icalendar",
        "recurring_ical_events",
        "icalevents",
        "bs4"
      ]
    },
    "mila": {
      "version": "0.4.1",
      "requirements": [
        "milasdk==0.4.1",
        "python-benedict==0.24.3",
        "geopy==2.2.0",
        "python-aqi==0.6.1"
      ]
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.31.1",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.77",
      "zigpy-deconz==0.18.0",
      "zigpy==0.47.3",
      "zigpy-xbee==0.15.0",
      "zigpy-zigate==0.9.0",
      "zigpy-znp==0.8.1"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      }
    ],
    "after_dependencies": [
      "onboarding",
      "usb",
      "zeroconf"
    ],
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 29203,
    "manufacturer": "Current Products Corp",
    "model": "E-Wand",
    "name": "Current Products Corp E-Wand",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 4707,
    "power_source": "Battery or Unknown",
    "lqi": 255,
    "rssi": -65,
    "last_seen": "2022-08-01T23:45:08",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4707, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0202",
          "in_clusters": [
            "0x0000",
            "0x0001",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0006",
            "0x0008",
            "0x0020",
            "0x0102",
            "0x0b05",
            "0xfc10"
          ],
          "out_clusters": [
            "0x0003",
            "0x0019"
          ]
        }
      }
    },
    "entities": [
      {
        "entity_id": "button.current_products_corp_e_wand_02fa4cfe_identify",
        "name": "Current Products Corp E-Wand"
      },
      {
        "entity_id": "cover.current_products_corp_e_wand_02fa4cfe_window_covering",
        "name": "Current Products Corp E-Wand"
      },
      {
        "entity_id": "sensor.current_products_corp_e_wand_02fa4cfe_power",
        "name": "Current Products Corp E-Wand"
      },
      {
        "entity_id": "switch.current_products_corp_e_wand_02fa4cfe_on_off",
        "name": "Current Products Corp E-Wand"
      }
    ],
    "neighbors": [],
    "endpoint_names": [
      {
        "name": "WINDOW_COVERING_DEVICE"
      }
    ],
    "user_given_name": "Blinds - Back Lounge 1",
    "device_reg_id": "c6d0809a8bd67cebe772dfe7d13c8f1c",
    "area_id": "back_lounge",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "WINDOW_COVERING_DEVICE",
          "id": 514
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "Current Products Corp"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "E-Wand"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0020": {
                "attribute_name": "battery_voltage",
                "value": 80
              },
              "0x0021": {
                "attribute_name": "battery_percentage_remaining",
                "value": 95
              }
            },
            "unsupported_attributes": {
              "0x0031": {
                "attribute_name": "battery_size"
              },
              "0x0033": {
                "attribute_name": "battery_quantity"
              }
            }
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0006": {
            "endpoint_attribute": "on_off",
            "attributes": {
              "0x0000": {
                "attribute_name": "on_off",
                "value": 0
              }
            },
            "unsupported_attributes": {
              "0x4003": {
                "attribute_name": "start_up_on_off"
              }
            }
          },
          "0x0008": {
            "endpoint_attribute": "level",
            "attributes": {
              "0x0000": {
                "attribute_name": "current_level",
                "value": 255
              }
            },
            "unsupported_attributes": {
              "0x4000": {
                "attribute_name": "start_up_current_level"
              },
              "0x0011": {
                "attribute_name": "on_level"
              },
              "0x0010": {
                "attribute_name": "on_off_transition_time"
              },
              "0x0012": {
                "attribute_name": "on_transition_time"
              },
              "0x0013": {
                "attribute_name": "off_transition_time"
              },
              "0x0014": {
                "attribute_name": "default_move_rate"
              }
            }
          },
          "0x0020": {
            "endpoint_attribute": "poll_control",
            "attributes": {
              "0x0000": {
                "attribute_name": "checkin_interval",
                "value": 13200
              }
            },
            "unsupported_attributes": {}
          },
          "0x0102": {
            "endpoint_attribute": "window_covering",
            "attributes": {
              "0x0009": {
                "attribute_name": "current_position_tilt_percentage",
                "value": 100
              }
            },
            "unsupported_attributes": {
              "0x0008": {
                "attribute_name": "current_position_lift_percentage"
              }
            }
          },
          "0x0b05": {
            "endpoint_attribute": "diagnostic",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0xfc10": {
            "endpoint_attribute": "manufacturer_specific",
            "attributes": {},
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Looking at your logs {"battery":47.5,"linkquality":255,"state":"OPEN","tilt":100} looks correct to me. (state is now OPEN). Isn't this reflected in HA?

Looking at your logs {"battery":47.5,"linkquality":255,"state":"OPEN","tilt":100} looks correct to me. (state is now OPEN). Isn't this reflected in HA?

No this is not populating the Home Assistant state.

@shanelord01 I've updated https://github.com/zigbee2mqtt/hassio-zigbee2mqtt/issues/359#issuecomment-1200117159 to use open/closed

@shanelord01 I've updated #359 (comment) to use open/closed

In the Z2M "State" submenu for the blind it still shows:
{
"battery": 47.5,
"linkquality": 255,
"state": "OPEN",
"tilt": 100
}
Even with the updated code. Seems something in Z2M is capitalising it.

What happens if you manually publish to zigbee2mqtt/YOUR_DEVICE_FRIENDLY_NAME payload {"battery":48,"linkquality":255,"state":"open","tilt":100}? If this doesn't give the correct state this looks a HA issue to me.

Nothing changes. But if I look at the device in HA only attributes for battery, link quality and tilt are shown. State is either not being passed to or not being received by HA.

OK.
I just took this advice to test it and put this in my HA configuration.yaml
This test blind is presenting HA with a state. Is there any way to make Z2M present the same to HA?
mqtt:
cover:
- name: "Test Blinds"
json_attributes_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
position_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
position_template: "{{ value_json.tilt }}"
set_position_topic: "zigbee2mqtt/Blinds - Back Lounge 1/set/tilt"
command_topic: "zigbee2mqtt/Blinds - Back Lounge 1/set/tilt"
position_open: 100
position_closed: 0
payload_open: "100"
payload_close: "0"
payload_stop: "STOP"

@shanelord01 this looks a bit of a hack for me since we map position to tilt, nevertheless, does it full work now without any external converters?

It’s definitely a hack. It is working but I’ve actually disabled the entities provided by Z2M in HA and I’m using my created one which is not ideal at all as it doesn’t fix the problem (ie ideally whatever I’m doing should be done in Z2M or others will have the same issue).
Without this HomeKit and Google Home etc don’t work when using Home Assistant to bridge to them.

I think we should first try to solve this at the HA side because I feel this workaround should be implemented there (since it is exposing to HomeKit/Google Home). Can you make an issue in the HA issue tracker?

With all due respect,  I don’t believe it’s a Home Assistant issue.
The fact I can access the raw mqtt info (from the device presented into mqtt by Z2M with my manual mqtt cover in HA) shows the data is available - just the way Z2M is presenting it into HA auto discovery is incorrect.
I don’t know how the Z2M to HA auto discovery works behind the scenes - but that is where I believe the issue is.

just the way Z2M is presenting it into HA auto discovery is incorrect.

In my opinion the way it exposes is correct, tilt is exposed as tilt, position as position. With https://github.com/zigbee2mqtt/hassio-zigbee2mqtt/issues/359#issuecomment-1205953872 tilt is exposed as position which does not seem correct to me.
My reason that this is a Home Assistant issue; Home Assistant is responsible for exposing the cover to Google Home/HomeKit. It seems it doesn't do this correct when the cover only supports tilt (in this case it should apply a workaround to expose the tilt as position) since Google Home/HomeKit don't support tilt.

just the way Z2M is presenting it into HA auto discovery is incorrect.

In my opinion the way it exposes is correct, tilt is exposed as tilt, position as position. With #359 (comment) tilt is exposed as position which does not seem correct to me.
My reason that this is a Home Assistant issue; Home Assistant is responsible for exposing the cover to Google Home/HomeKit. It seems it doesn't do this correct when the cover only supports tilt (in this case it should apply a workaround to expose the tilt as position) since Google Home/HomeKit don't support tilt.

Take Google Home and HomeKit out of it - they are a symptom of the issue.
The issue is Z2M is not updating HA state. That is the issue. Everything else stems from that.

With state you mean the state attribute right? Does it work with the following external converter and manual HA entry?
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const utils = require('zigbee-herdsman-converters/lib/utils');
const e = exposes.presets;
const ea = exposes.access;

const fzLocal = {
    cover_position_tilt: {
        cluster: 'closuresWindowCovering',
        type: ['attributeReport', 'readResponse'],
        options: [exposes.options.invert_cover()],
        convert: (model, msg, publish, options, meta) => {
            const result = {};
            // Zigbee officially expects 'open' to be 0 and 'closed' to be 100 whereas
            // HomeAssistant etc. work the other way round.
            // For zigbee-herdsman-converters: open = 100, close = 0
            // ubisys J1 will report 255 if lift or tilt positions are not known, so skip that.
            const invert = model.meta && model.meta.coverInverted ? !options.invert_cover : options.invert_cover;
            if (msg.data.hasOwnProperty('currentPositionTiltPercentage') && msg.data['currentPositionTiltPercentage'] <= 100) {
                const value = msg.data['currentPositionTiltPercentage'];
                result.tilt = invert ? value : 100 - value;
                result.state = result.tilt === 0 ? 'CLOSE' : 'OPEN';
            }
            return result;
        },
    }
}

const tzLocal = {
    cover_position_tilt: {
        key: ['position', 'tilt'],
        options: [exposes.options.invert_cover()],
        convertSet: async (entity, key, value, meta) => {
            const isPosition = (key === 'position');
            const invert = !(utils.getMetaValue(entity, meta.mapped, 'coverInverted', 'allEqual', false) ?
                !meta.options.invert_cover : meta.options.invert_cover);
            const position = invert ? 100 - value : value;

            // Zigbee officially expects 'open' to be 0 and 'closed' to be 100 whereas
            // HomeAssistant etc. work the other way round.
            // For zigbee-herdsman-converters: open = 100, close = 0
            await entity.command(
                'closuresWindowCovering',
                isPosition ? 'goToLiftPercentage' : 'goToTiltPercentage',
                isPosition ? {percentageliftvalue: position} : {percentagetiltvalue: position},
                utils.getOptions(meta.mapped, entity),
            );

            return {state: {[isPosition ? 'position' : 'tilt']: value, state: value === 0 ? 'CLOSE' : 'OPEN'}};
        },
        convertGet: async (entity, key, meta) => {
            const isPosition = (key === 'position');
            await entity.read('closuresWindowCovering', [isPosition ? 'currentPositionLiftPercentage' : 'currentPositionTiltPercentage']);
        },
    }
}

const definition = {
    zigbeeModel: ['E-Wand'],
    model: 'CP180335E-01',
    vendor: 'Current Products Corp',
    description: 'Gen. 2 hybrid E-Wand CUSTOM',
    fromZigbee: [fzLocal.cover_position_tilt, fz.battery],
    toZigbee: [tz.cover_state, tzLocal.cover_position_tilt],
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'closuresWindowCovering']);
        await reporting.batteryPercentageRemaining(endpoint);
        await reporting.currentPositionTiltPercentage(endpoint);
    },
    exposes: [e.battery(), e.cover_tilt()],
};

module.exports = definition;

mqtt:
  cover:
    - name: "Test Blinds"
      unique_id: xxx-xxx-xxx
      json_attributes_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
      command_topic: "zigbee2mqtt/Blinds - Back Lounge 1/set/state"
      state_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
      value_template: "{{ value_json.state }}"
      state_open: "OPEN"
      state_closed: "CLOSE"
      tilt_command_topic: "zigbee2mqtt/Blinds - Back Lounge 1/set/tilt"
      tilt_status_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
      tilt_status_template: `{{ value_json.tilt }}`

Yes with this the "Test Blinds" shows correct state in Home Assistant.
"Blinds - Back Lounge 1" (auto-discovered) still shows "unknown" state in Home Assistant.

Great, can you remove the external converter and try with:
mqtt:
  cover:
    - name: "Test Blinds"
      unique_id: xxx-xxx-xxx
      json_attributes_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
      command_topic: "zigbee2mqtt/Blinds - Back Lounge 1/set"
      state_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
      value_template: "{% if value_json.tilt > 0 %} open {% else %} closed {% endif %}"
      tilt_command_topic: "zigbee2mqtt/Blinds - Back Lounge 1/set/tilt"
      tilt_status_topic: "zigbee2mqtt/Blinds - Back Lounge 1"
      tilt_status_template: `{{ value_json.tilt }}`

That works and shows correct state in HA.
Just FYI - I forgot to mention before that {{ value_json.tilt }} needs to be "{{ value_json.tilt }}" to work.

Great, I've pushed the fix for the auto discovery. Can you check if everything works? (without any external converter or HA config).
Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

Almost there!
Now when tilt is showing closed/0 the open/close state is showing open.
When tilt shows open/100 the open/close state is showing closed.

Pushed a possible fix, please check.
Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

I'll try this latest change as well as I noticed yesterday it was showing position 0 on my blinds/shades but still showing as Open on HA.  Rolled back my container to the latest tag for a quick fix until I had more time to investigate.

Nope..
{"battery":100,"last_seen":"2022-08-10T14:25:27-05:00","linkquality":98,"position":0,"state":"OPEN"}

Pushed a possible fix, please check.
Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

Hmmm - now running Zigbee2MQTT version 1.27.0-dev (commit #da4a3b9) and still seeing tilt showing open and state showing closed.

@digiblur with what device is this? Can you provide the debug log when closing/opening this device?
See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging.

@digiblur with what device is this? Can you provide the debug log when closing/opening this device?
See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging.

I will fire up the container again. It was a few 3Reality sensors and one Phillips Hue motion sensor.

I see I responded to the wrong thread here.  This was with two different roller shade brands.  I'll pull them over to my dev container network as I had to stay on stable with my production box since this was messing up some automations showing the wrong closed/open states.  It's on the list for this weekend.

@digiblur with what device is this? Can you provide the debug log when closing/opening this device?
See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging.

@Koenkk
I see I responded to the wrong thread here. This was with two different roller shade brands. I'll pull them over to my dev container network as I had to stay on stable with my production box since this was messing up some automations showing the wrong closed/open states. It's on the list for this weekend.

ug 2022-08-27 23:26:52Received Zigbee message from 'YoolaxTest', type 'attributeReport', cluster 'closuresWindowCovering', data '{"currentPositionLiftPercentage":92}' from endpoint 1 with groupID 0
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest', payload '{"battery":96,"elapsed":1265,"last_seen":"2022-08-27T23:26:52-05:00","linkquality":149,"position":8,"state":"OPEN"}'
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest/battery', payload '96'
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest/position', payload '8'
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest/state', payload 'OPEN'
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest/elapsed', payload '1265'
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest/last_seen', payload '2022-08-27T23:26:52-05:00'
Info 2022-08-27 23:26:52MQTT publish: topic 'zigbee2mqtt/YoolaxTest/linkquality', payload '149'
Debug 2022-08-27 23:26:53Received Zigbee message from 'YoolaxTest', type 'attributeReport', cluster 'closuresWindowCovering', data '{"currentPositionLiftPercentage":98}' from endpoint 1 with groupID 0
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest', payload '{"battery":96,"elapsed":1265,"last_seen":"2022-08-27T23:26:54-05:00","linkquality":156,"position":2,"state":"OPEN"}'
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest/battery', payload '96'
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest/position', payload '2'
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest/state', payload 'OPEN'
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest/elapsed', payload '1265'
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest/last_seen', payload '2022-08-27T23:26:54-05:00'
Info 2022-08-27 23:26:53MQTT publish: topic 'zigbee2mqtt/YoolaxTest/linkquality', payload '156'
Debug 2022-08-27 23:26:54Received Zigbee message from 'YoolaxTest', type 'attributeReport', cluster 'closuresWindowCovering', data '{"currentPositionLiftPercentage":100}' from endpoint 1 with groupID 0
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest', payload '{"battery":96,"elapsed":1265,"last_seen":"2022-08-27T23:26:55-05:00","linkquality":149,"position":0,"state":"OPEN"}'
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest/battery', payload '96'
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest/position', payload '0'
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest/state', payload 'OPEN'
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest/elapsed', payload '1265'
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest/last_seen', payload '2022-08-27T23:26:55-05:00'
Info 2022-08-27 23:26:54MQTT publish: topic 'zigbee2mqtt/YoolaxTest/linkquality', payload '149'

The state and control is correct in Zigee2MQTT itself but in HA it is no longer correct with the current Z2M dev container.

Can you post the debug log when fully closing it?

Can you post the debug log when fully closing it?

 If it doesn't work:

provide me the debug log when fully closing and after that fully opening the cover
what are the models of these devices?

I'll give it a shot in a few hours... it happened on both of these device types
https://www.zigbee2mqtt.io/devices/WM25L-Z.html
https://www.zigbee2mqtt.io/devices/D10110.html

I'm really confused now, are you sure this is the latest dev?
https://github.com/Koenkk/zigbee2mqtt/commit/fa63ede uses zhc 14.0.608 which has the following logic: https://github.com/Koenkk/zigbee-herdsman-converters/blob/5ad7be2d69f371b170b5b0741e98d2e4579ea255/converters/fromZigbee.js#L1551
                const value = msg.data['currentPositionLiftPercentage'];
                result[postfixWithEndpointName('position', msg, model, meta)] = invert ? value : 100 - value;
                if (!coverStateFromTilt) {
                    result[postfixWithEndpointName('state', msg, model, meta)] =
                        metaInvert ? (value === 0 ? 'CLOSE' : 'OPEN') : (value === 100 ? 'CLOSE' : 'OPEN');
                }

Your logs shows exactly the opposite, e.g.:
debug 2022-08-30 10:18:20: Received Zigbee message from 'YoolaxTest', type 'attributeReport', cluster 'closuresWindowCovering', data '{"currentPositionLiftPercentage":0}' from endpoint 1 with groupID 0
info  2022-08-30 10:18:20: MQTT publish: topic 'zigbee2mqtt/YoolaxTest', payload '{"battery":94,"elapsed":1255,"last_seen":"2022-08-30T10:18:20-05:00","linkquality":149,"position":100,"state":"CLOSE"}'

value = currentPositionLiftPercentage = 0; metaInvert  == false for the WM25L-Z so the following logic applies: (value === 100 ? 'CLOSE' : 'OPEN') = OPEN, instead CLOSE is published in your case.  To be sure you are running the correct version, please update to the new z2m release version which will be released tomorrow.

Yes. That was a copy and paste from the about screen. I pulled the latest update on docker before the test.
I will give it a shot tomorrow on my production network and rolling back is easy so no worries if it doesn't work. Bigger crowd to test with more covers anyways.

Upgraded to the latest release on my production side and oddly my covers went to 0% as open, especially after forcing them to talk by adjusting the up/down.  Then after a couple minutes just as I was about to throw in the tag to roll back things.  They started popping back up as closed.   Super weird but at least it is working fine now.
Caught one when before it updated back...

then after it corrected itself

This was just in HA itself, states were showing correctly in Z2M.

@digiblur thats strange, but if I understand correctly, it works fine now?

@digiblur thats strange, but if I understand correctly, it works fine now?

Yep. Been working fine


Updated cloud-provider-aws for all versions

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Waiting for confirmation on when to take this update.

/hold

/test aws-cloud-controller-manager-1-21-presubmit

Superceded by https://github.com/aws/eks-distro/pull/1593


Namespace autoload issue

render if loyalty(@group, 'groups/preferences').edit?

or
render if Groups::Preferences.new(current_user, @group).edit?

causes below error.
Unable to autoload constant Groups, expected /app/app/loyalties/groups.rb to define it

I'm calling above snippets from outside of Groups::-namespaced controller.

I added route resource :preferences, only: [:edit, :update], module: 'groups' and resolved the issue. sorry :bow:


Is it possible to do Grouping in Direct Query with more than 10 groups

I tried creating more than 10 groups in Direct Query, But Power BI does not allow to create more than 10 Groups.
Is there any way i can create more than 10 groups on my data column which is using Direct Query ?
Any permissions which Admin can update and change this limit to more than 10 ?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7a1e0b0a-ff95-b2f7-44db-5c07ca876ab4
Version Independent ID: 1c975595-bf44-5f66-3e08-02c3e8e63797
Content: Use grouping and binning in Power BI Desktop - Power BI
Content Source: powerbi-docs/create-reports/desktop-grouping-and-binning.md
Service: powerbi
Sub-service: pbi-reports-dashboards
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Thanks for your comment, @NV2601. This issue has been assigned to the doc author for review.

Is there any update to this? I am running into the same issue. 10 is a ridiculously low limit for the number of groups.

Thanks for your post and question, this sounds like a technical and feature question best answered by the community or support. If you need technical support, you might find a solution in the Power BI Community, found at https://community.powerbi.com. If not, you can get support by going to https://support.powerbi.com.


PopUp losing center orientation on mobile devices

Hallo,
Test your examples on mobile phones (in my case iPhone 6):

A message with custom icon and css animation disabled.
A message with custom width, padding and background.

If you open PopUp on standard orientation and than change to landscape orientation the PopUp is no longer centered on screen after that.
I also test it with Google Chrome Developer tools with the same result.
Sometimes it looks correctly but in the most cases its not centered in Y direction.
Best regards

can anyone confirm this issue? I can't reproduce it on Android smartphone and on iPad.

I can also confirm on iPad 3 works correctly

But you can test it with Google Developer Tools, select iPhone 6, iPhone 6 Plus or Nexus 6P you can correctly reproduce the bug. The Dev Tools iPad shows it also correctly.

yeah, I can see it now. Thank you @quma, I'll try to fix this.

Fixed in v4.0.8


Feature/feedback menu

Added two new icons, feedback and gethelp, which are used in new component feedback-menu. To styling these icons in feedback-menu I created new component button-icon (but not sure if it should be component).
I will be very grateful for review ;)
Thanks!

@jakub-gawlas can you please rename the branch to Jira ticket number in techne backlog that this pull request corresponds to? it will help us in tracking the changes in case something goes wrong.


[Improvement]: Add check error code action not suggested

Description
Consider the following scenario

The io:fileWriteBytes("./audio_clips", audioBytes);  returns a value of type io:Error?. The diagnostic can be resolved adding the  check  keyword. Therefore, the Add check error code action can be suggested as a quick fix in this case.
Describe your problem(s)
No response
Describe your solution(s)
No response
Related area
-> Editor
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

Duplicate of https://github.com/ballerina-platform/ballerina-lang/issues/42507


Duplicated module file extension in Next.js with turbopack

What version of million are you using?
3.1.11
Are you using an SSR adapter? If so, which one?
<EMAIL_ADDRESS>What package manager are you using?
bun
What operating system are you using?
Linux
What browser are you using?
Chrome, Firefox, Opera, Floorp, Vivaldi, Brave
Describe the Bug
Module extensions are duplicated when being called at compiling time (in dev mode)
One of the multiple errors:

This occurs with every single 'use client' component when using turbopack and @million/lint > 1.0.0-rc.81 in dev mode.
When I use<EMAIL_ADDRESS>and<EMAIL_ADDRESS>this issue disappears.
What's the expected result?
Resolve client modules without duplicated extension
Link to Minimal Reproducible Example
https://codesandbox.io/p/devbox/nextjs-million-lint-bug-d74985?file=%2Fnext.config.mjs%3A47%2C1
Participation

[ ] I am willing to submit a pull request for this issue.

Reproducable starting in version<EMAIL_ADDRESS>up to<EMAIL_ADDRESS>With version<EMAIL_ADDRESS>I do not get this error message

Reproducable starting in version<EMAIL_ADDRESS>up to<EMAIL_ADDRESS>With version<EMAIL_ADDRESS>I do not get this error message

You are right. I'll update the issue.

Is there any maintainer to provide any guidelines to patch this issue?
Thank you in advance.

Same error here

This error is still present in release 1.0.0.

@KBeDevel can you upgrade to next@canary? This was a bug on Next.js https://github.com/aidenybai/next-turbopack-loader-repro. If that doesn't work, please schedule a time https://cal.com/aiden

@aidenybai Using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>on a clean project seems to work fine. Thank you for your time.

@KBeDevel Amazing!

I have the same error, next js version 15.0.3 and @million/lint version 1.0.12

I have the same issue using next 15.0.4-canary.22


Sqlite migration handler

May I know how are you handling Sqlite migration when app is updated on AppStore ? Since an update in app might feature change in Sqlite DB like addition/modification of new table, storing old data, etc.
Request you to share an example by code.

☞ https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md#migrations-and-schema-versioning


Don't Merge! PR real time test for source branch full build

Docs Build status updates of commit 9b2c31c:
:clock10: Pending: waiting for processors (31 builds ahead of you)
:warning: Docs Build is busy, currently there are 31 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 9b2c31c:
:clock10: Full build: the average full build time is 7 min(s) 26 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 9b2c31c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Fix bug to allow dataset statistics to be computed on decoded dataset

fyi @JonathanYang0127 here's a pull request fixing the bug I ran into when trying to move around the decode_dataset


feat: new combobox component

Related issue
Overview

Created a new Combobox component based on AutoComplete

Link to preview
NA
Reason
We have a user need for an autocomplete which allows for the entry of new values.
Work carried out
[A list of work you have done, use markdown checklist format, if you leave any boxes unchecked, be sure to set this PR as a WIP]
Example.

[x] Created new component
[x] Added stories
[x] Add unit tests

Screenshot

Developer notes
[Sometimes, extra notes are needed to add clarity to a PR, add them here]

Hi @markhigham
At the moment we're not working on new features and enhancements for the MOD.UK Design System and so we aren't able to review or accept this pull request currently. Discussions are ongoing internally so there should be more news soon.
Thanks


make index browser file path relative aswell

I missed the index file in this change here:
https://github.com/RobinBuschmann/sequelize-typescript/commit/244b16cfaa19dbf2888dad551720d7e3756cfa3c
This is the last thing needed to close to support browser

@RobinBuschmann ping would be great to merge this in


Upgrade to Django 4.x

@pombredanne I would like to work on this issue. Can you please assign this to me?

@Pratyush1606 Thanks! note that we do not "assign" issues (nor can practically). You are welcome to work on this and submit a PR!


Separate run time environments

Subsequent calls to stopifyLocally  should not interfere each other:
aa = stopify.stopifyLocally(`(() => {
  var sum = 0
  while(true) {
    sum++;
    if(sum % 1e8 === 0) {
      console.info("y:" + sum);
    }
  }
})()`); aa.run(x=>x)

aa = stopify.stopifyLocally(`(() => {
  var sum = 0
  while(true) {
    sum++;
    if(sum % 1e8 === 0) {
      console.info("x:" + sum);
    }
  }
})()`); aa.run(x=>x)

Expected behaviour: print both “x:…” and “y:…”
Actual behaviour: print only “x:…”
@rachitnigam  do you think it's a regression?

Quick ping to see if there is anything for this. If there is a design doc with an outline for what needs to be done, I can try to hack it up.

Nope, go for it! It would be great to have this in.


Some counters with more complex programming requirements don't work with libpfc

Some counters have more complex programming requirements, e.g., setting two different MSRs.
Unfortunately, this includes pretty interesting counters such as the L1I_MISS counters. See here for a concrete example and a nasty workaround.
It would be awesome if libpfc supported these (maybe I'll do it someday if no one gets to it).

I did some of the more tedious work related to supporting a new MSR, and exposed it for reading, though not writing (because /sys/module/pfc/msr is read-only for now).
I suppose what's left is that if a counter gets programmed with an L1I_MISS event code, then there should be a conditional pfcWRMSR() invocation within the kernel module.
I still need to think of a way to systematize all of these MSR accesses. More broadly, I feel that the kernel module, kernel-userland ABI and libpfc.h API are all overdue for a refactoring. But it's hard to take into account all hardware generations' quirks, events lists, restrictions on which counter may count what, ... and to then encode this within both the kernel and userland.
Then there is the issue of how to deal with counter virtualization. Making the counter values follow the thread would remove the limitation of pinning the thread to just one core, but would be a massive undertaking to support and I've no idea how to even begin.

Indeed, I don't suggest a general solution because I think "it's complicated".
Personally I wouldn't embark on the path of trying to virtualize counters: this already happens with perf_events so all of the code is already there and in almost every kernel for the last X years (X is perhaps 5ish?).
Presumably perf also has a way to program these more complex counters: indeed the events work fine when you use perf (and in fact my current workaround is to use perf on the comment line to program the extra MSRs, and then use libpfc since the MSRs keep their values). So we are again running up against the fact that perf_events already handles a lot of what you might consider potential enhancements to libpfc, so presumably you want to keep filling the niche that perf_events doesn't handle.

I suppose what's left is that if a counter gets programmed with an L1I_MISS event code, then there should be a conditional pfcWRMSR() invocation within the kernel module.

Yes, I think so - and the API also needs a way to accept this additional info (since I don't think it all gets packed into the one raw code).


Add sipa's fuzz seeds April 2024

This PR appears to make changes to 225,333 files. I was wondering whether you could tell us a bit more about your procedure in crafting the PR. Is this the result from a merge?


fix: siliconflow error response

silliconflow API error response only received message text, not a object

Moving this PR to draft state. Please make it ready for review one the comment is addressed. https://github.com/Portkey-AI/gateway/pull/636#discussion_r1814976254


Type alias circularly references itself (5.4 regression)

🔎 Search Terms
Type alias circularly references itself (5.4 regression)
🕗 Version & Regression Information

This changed between versions 5.3.3 and 5.4.5

⏯ Playground Link
https://www.typescriptlang.org/play?ts=5.4.5#code/C4TwDgpgBAQg9nANhAhgOwAouACwM4A8AKgHxQC8UewATgJZoDmUAZALABQUUA3p99wDaAaSgMoAawgg4AMyhEAugC4FIxVAgAPYBDQATPFABGCZOn4DuAfijDLV1UXWadew1DjGAVhADGwA4CtqLaugZGaACuALbGEDRQAD5UtAyMQVa2AAYAJDzCAL4AdPnwSKiY2PjE6iSF2ZkCqmgQAG4JTS3tCQDcloWCUjLySv0c-EA
💻 Code
type BooleanPaths<T> = string &
  {
    [K in keyof T]: T[K] extends boolean
      ? K
      : T[K] extends object
      ? K extends number | string
        ? `${K}.${BooleanPaths<T[K]>}`
        : never
      : never;
  }[keyof T];

🙁 Actual behavior
This code fails with two errors:
Type alias 'BooleanPaths' circularly references itself.
Type 'BooleanPaths' is not generic.
🙂 Expected behavior
The compilation should pass, as it has in previous versions.
Additional information about the issue
No response

Bisects to #56515

The issue is that following #56515 we perform constraint reduction on intersection types T & P or P & T, where T is a type parameter or indexed access type and P is a primitive type, the object type, or {}, reducing the intersection type to just T when the constraint of T fully encompasses P. For example, for a T extends string, the intersection T & string is reduced to just T. In the repro, we attempt to reduce the intersection string & {...}[keyof T], but resolving the constraint of {...}[keyof T] causes a circularity. It's unfortunate, but the price we have to pay to get the benefits of the feature.
I'd suggest rewriting the BooleanPaths type to this simpler formulation:
type BooleanPaths<T, K extends keyof T = keyof T> =
    K extends string ?
      T[K] extends boolean ? K :
      T[K] extends object ? `${K}.${BooleanPaths<T[K]>}` :
      never :
    never;

No circularity and handles both object and tuple types.


[RFC] Add epoch_start_timestamp_ms to system object

This PR exposes timestamp of epoch start to the smart contracts in move, by putting this timestamp in the system object.
This can be useful for smart contract that needs some very coarse time before we have more granular timestamps.

Might want to share in the move channel to see if this would be useful feature

are you also planning on working on exposing checkpoint timestamps and/or generally narwhal consensus timestamps to Move, as part of the "Programmatic access to time" worksteram?

Yes, thats the plan :)

I've left a comment about exposing the field with a getter function, so that folks can access it from within Move packages, but otherwise looks good to me! Holding off on the accept as I'm less familiar with the epoch boundary code.

Good point about accessor method, will add.
Do you know who would be a good person to review PR who might be more familiar with epoch boundary code? @emmazzz ?

are you also planning on working on exposing checkpoint timestamps and/or generally narwhal consensus timestamps to Move, as part of the "Programmatic access to time" worksteram?

Yes, thats the plan :)

Awesome!  Okay, well for those, in case it's useful, to give you a sketch, it's sufficient to add it as an optional (i.e. Option<u64>) field of TxContext, which gets filled only for shared object transactions (I'm assuming that even if we are using checkpoint transactions, that we can't reliably pick a timestamp across validators for owned object transactions?).
There's a component that follows which involves adding a Clock type that forces a transaction to go to consensus etc, which I'm happy to take from there, but if you were also looking forward to doing that, I'm happy to sketch that bit out too!

Do you know who would be a good person to review PR who might be more familiar with epoch boundary code?

I figured @lxfind, but I figured incorrectly, I'm happy to take a closer look!

Added epoch_start_timestamp_ms and rebased

Actually no let's not bother..


Initiating "New chat" causes crash [v14.1.1]

When I try to initiate a new chat from my Jabber account, using the "+" icon above the buddy list, the app crashes.

This one seems to have now changed. Using the "+" icon, I'm presented with a list of contacts. As soon as I scroll in this list, the app crashes.

Is this still happening? Is there anything unique about your contact list? size? strange avatars? names in other character sets?

Yes, the problem persists and I'm back to crashing at the moment I click "+".

Contact list is fairly short but does not fit on one screen.
Not qutie sure what would constitute a strange avatar but there are none that are not simple images.
Some non-ASCII characters; all within 8859-1 though.

There were some crashes we saw with an empty name for a contact. We'll have a new build soon to test.


Extension Host process never exits when having endless loop in extension

(The UI side of things is tracked in #58612)

Create an extension with a while (true) or process.nextTick endless loop
Close VS Code completely
Observe, the extension host process lingers around

Here is an example extension:

package.json:

{
  "name": "bad",
  "publisher": "alex",
  "version": "0.0.0",
  "engines": { "vscode": "^1.22.0" },
  "activationEvents": [ "*" ],
  "main": "index.js"
}

index.js:

const vscode = require('vscode');
exports.activate = function() {
    console.log(`I am now entering while true loop`);
    while (true) {
        // do nothing, like a pro
    }
}

Observe that after exiting vs code the extension host process runs forever, until it must be manually killed.

The extension host process will now quit at most within 7 seconds of the parent process quitting.

@alexandrudima I love you. You just fixed half of my Windows installation issues.


Add all algorithm to Sequence

👍

The core team talked about this, and while it is small... there is still much bike shedding to be done to get to agreement on the right name for this algorithm, and we still have a number of higher-priority proposals in flight. So, we should revisit this post-Swift 4.


Steps

New issue checklist

[ ] I have reviewed the README and documentation
[ ] I have searched existing issues and this is not a duplicate

General information

IGListKit version:
iOS version(s):
CocoaPods/Carthage version:
Xcode version:
Devices/Simulators affected:
Reproducible in the demo project? (Yes/No):
Related issues:

@Alfonso69 looks like the issue submitted before filling in info. Mind updating?


In Markdown preview, bullet lists of 2nd level render without indent

Issue Type: Bug
Example of two-level bulleted list
Two level list:
*  GUI - the GUI application
  * GUI_QA - PC side utility to test the GUI (simulates board)
  * BOARD_QA - connects to the board over tcp (simulates host)
*  scripts/foo.py - utility for building foo

In preview, all items above are displayed at one level, items 2,3 without indentation.
For indentation, two spaces must be enough per the specification: https://guides.github.com/features/mastering-markdown/#syntax
But it seems that 3 spaces are needed.

GUI - the GUI application

GUI_QA - PC side utility to test the GUI (simulates board)
BOARD_QA - connects to the board over tcp (simulates host)

scripts/foo.py - utility for building foo

Please either fix implementation or the spec.
Other editors (I use Typora ) render 2 spaces indent correctly.
 The rendering matches the common mark spec: https://spec.commonmark.org/dingus/?text=%20%20GUI%20-%20the%20GUI%20application%0A%20%20%20GUI_QA%20-%20PC%20side%20utility%20to%20test%20the%20GUI%20(simulates%20board)%0A%20%20*%20BOARD_QA%20-%20connects%20to%20the%20board%20over%20tcp%20(simulates%20host)%0A*%20%20scripts%2Ffoo.py%20-%20utility%20for%20building%20foo
Just get rid of the extra space in * GUI  if you want this to render as nested lists


Fix New-AzureLocalNetworkGateway and Update-AzureLocalNetworkGateway

Re-adding custom serialization code that was overwritten when network code was generated

@lamchester if you want to publish this package you need to update nuget version.


Deprecation error in pickImage, pickVideo and LostDataResponse

error: Target of URI doesn't exist: 'package:image_picker/image_picker.dart'. (uri_does_not_exist at [image_crop_example] lib\main.dart:7)

want to fix this issue


Dependencies have severe vulnerabilities

Dependabot and npm warn of these, but in particular these cannot be automatically updated by it:
Upgrade dot-prop to version 4.2.1 or later.
Upgrade serialize-javascript to version 3.1.0 or later.
Thanks for the template!

Thanks, @PaulMcInnis - just updated, and vulnerability warnings have vanished - for now :)


Minify_Cache_File::store() improvements

Don't need to unlink file because file_put_contents will handle that. Also, don't return false after file_put_contents fails in case it creates a zero size file (use the existing "does the data match" check to ensure that the zero size file gets unlinked).

Great. Thanks!


Update references to SSLContextParameters

Update references to SSLContextParameters (class name and namespace).

Thank you @qligier.  BTW, I found one more reference ;)

I saw migration guide but decided not to update it there because when installing IPF 3.2, you get Camel with the old namespace. But I guess this shouldn't be frequent.


How to dynamically bind Scriptable Object Installer based on runtime params

I have different Scriptable Object Installers (assets file) which I would like to used dynamically based on some runtime setting (e.g. in case of Android use Installer.Android.asset, in case of Win use Installer.Win.asset).
How that can be achieved?
Currently I am aware of that in SceneContext you manually add asset file of desired setting but I would like to chose those setting asset files based on some params.
Thanks,
BR
Marije

Easiest way would probably be like this:
Container.InstantiateScriptableObjectResource<ScriptableObjectInstaller>("Path/To/Installer").InstallBindings()

This should work too if you know the exact installer type:
    public class FooInstaller : ScriptableObjectInstaller<FooInstaller>
    {
    }

    public class TestInstaller : MonoInstaller<TestInstaller>
    {
        public override void InstallBindings()
        {
            FooInstaller.InstallFromResource("Path/To/Installer", Container);
        }
}

The second way might be a bit nicer in case you add runtime arguments to the installer in the future, since that would produce compile errors wherever it is installed from.

Thanks a lot, it helped.


Use ED_IS_SHORTCUT macro instead of matches_event

As was pointed out to me, ED_IS_SHORTCUT("<shortcut>", p_event) is preferred over ED_GET_SHORTCUT("<shortcut>")->matches_event(p_event), so this PR changes this in all the occurrences that I could find, particularly in the AnimationEditor and in the CanvasItemEditor.

Thanks!


TypeScript: Context.Provider value should not be assignable to undefined in the default case

Summary
Context providers should not accept undefined by default. Example of previously correct code we'd like to avoid:
const MyContext = createContext<string>()
const someValue: string | undefined

<MyContext.Provider value={someValue}>
  ...
</MyContext>

Assumption is that if you really wanted to allow providing undefined you would have written:
const MyContext = createContext<string | undefined>()

This does not change the fact that useContext returns undefined if no default was provided:
const MyContext = createContext("hello")
const MyContextWithoutDefault = createContext<string>()
const MyContextExplicit = createContext<string | undefined>("string")

const ctx: string = useContext(MyContext)
const ctx: string | undefined = useContext(MyContextWithoutDefault)
const ctx: string | undefined = useContext(MyContextExplicit)

When combining Resources with Context, it is very easy to forget to test if a given resource is available before assigning it to the provider value.
How did you test this change?
I wrote an additional test to test the usage patterns.
This is type-level only change.

I don't believe this requires adding a generic; regardless it will be a breaking (type) change. You'd need a second Context type for the defaultless overload, with useContext accepting either. There are a few different ways to change useContext for this purpose but overloading it probably makes the most sense. The second overload should accept both while the first accepts the narrower context.

Yes, I considered this as well, just thought this approach was a bit simpler. I'm not super worried about this detail, as long as the user-facing API is improved. Should I create another PR with your suggestion and we compare?

regardless it will be a breaking (type) change.

Yeah, but hopefully people have not relied on this, and would actually like to see the error otherwise (given that it appears only when strict enabled). For me it was surprising that doing
<Context.Provider value={undefined}>

actually reverts to the default value and doesn't literally set undefined. This could be reflected in the types, but I wonder why it is like this in the first place.


Timeline for the restoration of ability to use Ubuntu images?

I see there is a comment in the template but I was wondering if this is something that is being actively worked on?

I am actively working on this, although it will probably be for Ubuntu 19.04 for now. The biggest blocker is that version 2.0+ of the project depends on Slurm 18, and the Ubuntu repositories prior to Ubuntu 19 only have Slurm 17.

Great news - thanks for the quick response.


Support XCTest

This project has not been updated in some time. The project fails to run tests on Xcode 7 as it is depending on SenTesting which has been replaced with XCTest.

looks like https://github.com/thisandagain/semver/pull/13 will fix this issue.

Resolved in #18


Bump cryogenics/essentials to vlatest

This is an automatically generated Pull Request from the Cryogenics CI Bot.
I have detected a new version of cryogenics/essentials and automatically bumped
this package to benefit from the latest changes.
If this does not look right, please reach out to the #mapbu-cryogenics team.

superseed by #1266


Support for buttons on the device

Supporting starting and stopping a session in Synthesia via controls on the device as a first step - if there is a way to do that with  Syhthesia.
Obviously qKontrol supports some buttons, so we should be able to do the same.

See #5


Check RSA public key strength before signing

Don't sign public keys when,

public key is less than 2048 bits
key exponent is less than (2^16)+1
modulus is even
modulus is divisible by known small primes

These are essentially the same checks done by the Let's Encrypt CA.

Adding these extra public key checks makes sense.  Is there a reason you didn't add validate_for_signing() checks into the RSAPublicKey constructor?
I think it would be a good fit in there, in addition to the checking done by cryptography.load_ssh_public_key().

Adding these extra public key checks makes sense. Is there a reason you didn't add validate_for_signing() checks into the RSAPublicKey constructor?

It probably would have made more sense if I included my change to get_ssh_public_key(). Moved the repo around right before submission and missed that one..
My thinking was that if someone needed to create a weak RSAPublicKey object for some reason, they could still do that without accidentally removing the validation checks in a patch. But it should be easy to see that the validation is called for all public key types when the lambda runs. So probably calling it from one of the factory methods. It would probably be better to have all SSHPublicKey objects to have a validate_for_signing method that each type would implement, and then have the certificate builder factory call it, but that might be overkill if no one is planning to create weak SSHPublicKey objects.
I'm happy to just call it in the constructor if you want to keep things simple.


Add a Codacy badge to README.md

Current coverage is 0.00% (diff: 100%)

Merging #2 into master will not change coverage

@@           master   #2   diff @@
==================================
  Files           5    5
  Lines          42   42
  Methods         0    0
  Messages        0    0
  Branches        4    4
==================================
  Hits            0    0
  Misses         42   42
  Partials        0    0

Powered by Codecov. Last update fd29bfb...6c32af1


Ledbury shirt ad's text is sharper, less anti-aliased in Shumway than in Flash

SWF: 3d3046e92adb877e6062d70622444b70532b979271903e804666e1da352ac262 (Direct Link)
Shumway is brighter whereas Flashplayer has a yellowy ting with a gradient that appears to spill slightly into the Shumway Edge respectively

This looks completely identical, so I'm going to close this.


Test with some LFRic data

Let's see what we will be getting ourselves into.

Hi James,
Here’s some data to play with! 😊 As I said earlier the slam files with the unedited meta data are probably a good way of finding out just how different things are and get a feel for what’s coming (and how much trouble it’s going to cause…). The files with the edited meta data still contain a few differences, but the most common attributes have been changed to align with what a UM data processing script would expect.
I’m heavily relying on Paul Earnshaw’s script to do the meta data transformations including the bit where the time coordinate is demoted to allow merging. This is likely something you’ll need to fix even if you keep the rest of the meta data as is. Have a look at lfric.py in contrib/trunk/paulearnshaw/irislib/io – Combined Model Assessment (metoffice.gov.uk), the first if block in the callback_lfric function deals with this (lines 79-98). If you’re trying to keep it “as LFRic as possible”, you’ll probably not want/need any of the rest of that function.
Slam gets very memory hungry as it touches all the data, so when generating the structured data I'm filtering out all the model level (i.e. "full level" and "half level") fields before the transformation. If slam becomes something that we rely on longer-term I hope Bill will be willing to look into this, but at the moment I'm his only real user and there's only so much time he can justify spending on slam under those circumstances…
Any problems or questions, give me a shout.
Cheers,
Anke
LFRic ugrid data:

/data/users/afinnen/NGMS/testdata/UK_domain/20210729T0000Z_crun_3h/${crun}/lfric_diag.nc

8 files with 3h data each. While you might want to start with 1 file, I suggest you work with at least two files loaded into one cube fairly early on as you don't want to get caught out by the way the time coordinate doesn't quite merge.
LFRic structured data with original meta data:

/data/users/afinnen/NGMS/testdata/UK_domain/20210729T0000Z_crun_3h/lfric_slam_${crun}.nc

8 separate files matching the original 3h crun files output by LFRic. Same as for the LFRic ugrid data, I suggest working with loading at least 2 files fairly early on.
LFRic structured data with processed meta data to make it more like the UM:

/data/users/afinnen/NGMS/testdata/UK_domain/20210729T0000Z_crun_3h/UK_lfric_struc_${crun}.nc

8 separate files matching the original 3h crun files output by LFRic

/data/users/afinnen/NGMS/testdata/UK_domain/20210729T0000Z_crun_3h/UK_lfric_struc.nc

Cruns merged into one 24h file

Issue transferred from https://github.com/MetOffice/CSET-workflow/issues/107.

UMified LFRic data at /scratch/raltrials/u-de155/20190725T0000Z/lfric/lfric_struc_*.nc

LFRic data has cell methods, so the existing UM recipes won't work.
>>> cube.cell_methods
(CellMethod(method='point', coord_names=('time',), intervals=('60 s',), comments=()), CellMethod(method='point', coord_names=('time',), intervals=('60 s',), comments=()))

Now working with the CSET workflow!

(The issue was that "air_pressure_at_sea_level" is not a name in the LFRic cube.)


Add daemonsets.apps to clusterrole

What this PR does / why we need it:
cluster-autoscaler introduced a change that switched from using extensions/v1beta1 to apps/v1.DaemonSet, changing the permissions necessary to operate.
Checklist

[x] DCO signed
[x] Chart Version bumped

/assign @cpanato

/ok-to-test

/lgtm


Maximize/minimize window reset dynamic content

QWindow DOM-structure reseted to default after maximize/minimize window.
Example bug:
https://codepen.io/snakems/pen/QWdoWNw

@snakems Can you provide a better explanation of what the issue is? I'm not seeing it.

@hawkeye64
If change content in window, then maximize it, changes is gone

@snakems That's because you are setting the innerHTML and when Vue redraws, it's not in the Virtual DOM, so gets overwritten (or, in this case, not written at all). Here is an updated codepen doing it the Vue way: https://codepen.io/Hawkeye64/pen/yLgwMrx?editors=1010


Add an Easier way to interact with users

Discussed in https://github.com/an-nadaaa/nda-front/discussions/101

Originally posted by smsalmanshahAN March 22, 2022
In some websites they have a clickable link that connects to whataspp. Again it is more convenient for phones.
https://faq.whatsapp.com/iphone/how-to-link-to-whatsapp-from-a-different-app/?lang=en
This can be a future feature as we do not have a dedicated whatsapp number yet but are thinking on getting one specifically for communicating with donors.
We Can either add a Whatsapp button or add a chat widget probably intercome.

@BennaceurHichem It would be appreciated if you can provide a list of tools like intercom that we can use.

@BennaceurHichem It would be appreciated if you can provide a list of tools like intercom that we can use.

I will
thhere tidio and crisp both are good but we wil discuss more about it later inshallah


GDrive remote: add a description on how remote data is shared

Try different workflows, shared folders, shared drive (advanced)
https://discordapp.com/channels/485586884165107732/485596304961962003/742998672400449556

https://discordapp.com/channels/485586884165107732/485596304961962003/743193799445971036

If it requires my google account to pull data from the dvc remote, how can I share data with others?

I have setup a dvc repo with dvc remote as my Google drive folder. The folder is set with anyone with the link can edit option. I could successfully push and pull. Everything is fine.

Related: #1699


Jesse: Watch ayurleafherbals.com

Jesse requests the watch of the watch_keyword ayurleafherbals\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

ayurleafherbals\.com has been seen in 2 true positives, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ


[Device Support Request] Add support for ptvo.info - ptvo.switch

Is your feature request related to a problem? Please describe.
Moved from HA core repo:
No objects for bmp280 Data Clusters.
Can't read value from temperature, humidity, pressure.
In logs DATA exists.
Only switch and binary sensor is is created.
Describe the solution you'd like
Translate the 3 readings on the analog input cluster into the appropriate ZCL clusters for temperature, humidity and pressure

Here are the logs
Device 0x0830 (00:12:4b:00:1d:38:d3:c6) joined the network
[0x0830:zdo] ZDO request ZDOCmd.Device_annce: [0x0830, 00:12:4b:00:1d:38:d3:c6, 142]
[0x0830] Requesting 'Node Descriptor'
Tries remaining: 2
[0x0830] Extending timeout for 0xa0 request
[0x0830] Node Descriptor: <Optional byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4447 maximum_buffer_size=80 maximum_incoming_transfer_size=160 server_mask=0 maximum_outgoing_transfer_size=160 descriptor_capability_field=0>
[0x0830] Discovering endpoints
Tries remaining: 3
Ignoring message (b'00000a00001000') on cluster 6: unknown endpoint or cluster id: 1
[0x0830] Discovered endpoints: [6, 4, 3, 2, 1]
[0x0830:6] Discovering endpoint information
Tries remaining: 3
Ignoring message (b'00010a00001000') on cluster 6: unknown endpoint or cluster id: 'No cluster ID 0x0006 on (00:12:4b:00:1d:38:d3:c6, 3)'
[0x0830:6] Discovered endpoint information: <Optional endpoint=6 profile=260 device_type=256 device_version=0 input_clusters=[12] output_clusters=[]>
[0x0830:4] Discovering endpoint information
Tries remaining: 3
[0x0830:4] Discovered endpoint information: <Optional endpoint=4 profile=260 device_type=256 device_version=0 input_clusters=[18] output_clusters=[]>
[0x0830:3] Discovering endpoint information
Tries remaining: 3
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=2 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=29.670000076293945>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=C,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=29.670000076293945, description=C,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=3 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=99570.0>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=Pa,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=99570.0, description=Pa,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=4 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=147.1482391357422>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=m,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=147.1482391357422, description=m,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=5 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=54.0830078125>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=%,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=54.0830078125, description=%,77
[0x0830:3] Discovered endpoint information: <Optional endpoint=3 profile=260 device_type=256 device_version=0 input_clusters=[12, 6] output_clusters=[6]>
[0x0830:2] Discovering endpoint information
Tries remaining: 3
[0x0830:2] Discovered endpoint information: <Optional endpoint=2 profile=260 device_type=256 device_version=0 input_clusters=[18] output_clusters=[]>
[0x0830:1] Discovering endpoint information
Tries remaining: 3
[0x0830:1] Discovered endpoint information: <Optional endpoint=1 profile=260 device_type=256 device_version=0 input_clusters=[0, 2821, 12, 6] output_clusters=[0, 2821, 6]>
[0x0830:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=178 command_id=Command.Read_Attributes_rsp>
[0x0830:1] Manufacturer: ptvo.info
[0x0830:1] Model: ptvo.switch
Checking quirks for ptvo.info ptvo.switch (00:12:4b:00:1d:38:d3:c6)
Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.lutron.lzl4bwhl01remote.LutronLZL4BWHL01Remote2'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.osram.a19twhite.A19TunableWhite'>
Fail because endpoint list mismatch: {3} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.philips.rom001.PhilipsROM001'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.philips.rwl020.PhilipsRWL020'>
Fail because endpoint list mismatch: {1, 2} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.philips.rwl021.PhilipsRWL021'>
Fail because endpoint list mismatch: {1, 2} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1, 2, 3, 4, 6}
Considering <class 'zhaquirks.xiaomi.mija.smoke.MijiaHoneywellSmokeDetectorSensor'>
Fail because endpoint list mismatch: {1} {1, 2, 3, 4, 6}
device - 0x0830:00:12:4b:00:1d:38:d3:c6 entering async_device_initialized - is_new_join: True
device - 0x0830:00:12:4b:00:1d:38:d3:c6 has joined the ZHA zigbee network
[0x0830](ptvo.switch): started configuration
[0x0830:ZDO](ptvo.switch): 'async_configure' stage succeeded
[0x0830:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0x0830:1:0x0006]: finished channel configuration
[0x0830:1:0x0000]: bound 'basic' cluster: Status.SUCCESS
[0x0830:1:0x0000]: finished channel configuration
[0x0830:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0x0830:1:0x0006]: finished channel configuration
[0x0830:3:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0x0830:3:0x0006]: finished channel configuration
[0x0830:3:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0x0830:3:0x0006]: finished channel configuration
[0x0830:3:0x0006]: 'async_configure' stage succeeded
[0x0830:3:0x0006]: 'async_configure' stage succeeded
[0x0830:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=188 command_id=Command.Read_Attributes_rsp>
[0x0830:1:0x0000]: initializing channel: from_cache: False
[0x0830:1:0x0006]: 'async_configure' stage succeeded
[0x0830:1:0x0000]: 'async_configure' stage succeeded
[0x0830:1:0x0006]: 'async_configure' stage succeeded
[0x0830](ptvo.switch): completed configuration
[0x0830](ptvo.switch): stored in registry: ZhaDeviceEntry(name='ptvo.info ptvo.switch', ieee='00:12:4b:00:1d:38:d3:c6', last_seen=1594728066.486898)
[0x0830](ptvo.switch): started initialization
[0x0830:ZDO](ptvo.switch): 'async_initialize' stage succeeded
[0x0830:1:0x0006]: initializing channel: from_cache: False
[0x0830:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=192 command_id=Command.Read_Attributes_rsp>
[0x0830:1:0x0006]: initializing channel: from_cache: False
[0x0830:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=194 command_id=Command.Read_Attributes_rsp>
[0x0830:1:0x0000]: initializing channel: from_cache: False
[0x0830:3:0x0006]: initializing channel: from_cache: False
[0x0830:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=198 command_id=Command.Read_Attributes_rsp>
[0x0830:1:0x0006]: 'async_initialize' stage succeeded
[0x0830:1:0x0000]: 'async_initialize' stage succeeded
[0x0830:1:0x0006]: 'async_initialize' stage succeeded
[0x0830:3:0x0006]: initializing channel: from_cache: False
[0x0830:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=6 command_id=Command.Report_Attributes>
[0x0830:1:0x0006] ZCL request 0x000a: [[<Attribute attrid=0 value=<TypeValue type=Bool, value=Bool.false>>]]
[0x0830:1:0x0006] Attribute report received: on_off=0
[0x0830:3:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=7 command_id=Command.Report_Attributes>
[0x0830:3:0x0006] ZCL request 0x000a: [[<Attribute attrid=0 value=<TypeValue type=Bool, value=Bool.false>>]]
[0x0830:3:0x0006] Attribute report received: on_off=0
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=8 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=29.65999984741211>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=C,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=29.65999984741211, description=C,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=9 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=99561.0>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=Pa,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=99561.0, description=Pa,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=11 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=54.10546875>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=%,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=54.10546875, description=%,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=10 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=147.90921020507812>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=m,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=147.90921020507812, description=m,77
[0x0830:3:0x0006]: failed to get attributes '['on_off']' on 'on_off' cluster:
[0x0830:3:0x0006]: 'async_initialize' stage succeeded
[0x0830:3:0x0006]: 'async_initialize' stage succeeded
[0x0830](ptvo.switch): power source: Mains
[0x0830](ptvo.switch): completed initialization
[0x0830:1:0x0006]: attempting to update onoff state - from cache: False
[0x0830:3:0x0006]: attempting to update onoff state - from cache: False
[0x0830:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=208 command_id=Command.Read_Attributes_rsp>
None: polling current state
None: polling current state
[0x0830:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=12 command_id=Command.Report_Attributes>
[0x0830:1:0x0006] ZCL request 0x000a: [[<Attribute attrid=0 value=<TypeValue type=Bool, value=Bool.false>>]]
[0x0830:1:0x0006] Attribute report received: on_off=0
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=14 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=29.65999984741211>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=C,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=29.65999984741211, description=C,77
[0x0830:3:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=13 command_id=Command.Report_Attributes>
[0x0830:3:0x0006] ZCL request 0x000a: [[<Attribute attrid=0 value=<TypeValue type=Bool, value=Bool.false>>]]
[0x0830:3:0x0006] Attribute report received: on_off=0
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=15 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=99569.0>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=Pa,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=99569.0, description=Pa,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=17 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=54.423828125>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=%,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=54.423828125, description=%,77
[0x0830:6:0x000c] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=16 command_id=Command.Report_Attributes>
[0x0830:6:0x000c] ZCL request 0x000a: [[<Attribute attrid=85 value=<TypeValue type=float, value=147.2327880859375>>, <Attribute attrid=28 value=<TypeValue type=CharacterString, value=m,77>>]]
[0x0830:6:0x000c] Attribute report received: present_value=147.2327880859375,

Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line.

Device signature
{
  "node_descriptor": "<Optional byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4447 maximum_buffer_size=80 maximum_incoming_transfer_size=160 server_mask=0 maximum_outgoing_transfer_size=160 descriptor_capability_field=0>",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0000",
        "0x0006",
        "0x000c",
        "0x0b05"
      ],
      "out_clusters": [
        "0x0000",
        "0x0006",
        "0x0b05"
      ]
    },
    "2": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0012"
      ],
      "out_clusters": []
    },
    "3": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0006",
        "0x000c"
      ],
      "out_clusters": [
        "0x0006"
      ]
    },
    "4": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0012"
      ],
      "out_clusters": []
    },
    "6": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x000c"
      ],
      "out_clusters": []
    }
  },
  "manufacturer": "ptvo.info",
  "model": "ptvo.switch",
  "class": "zigpy.device.Device"
}

Additional context
https://github.com/home-assistant/core/issues/37845

I asked the developer of that firmware already. Unfortunately, he not accepted all of that wishes.

There are one inconvenience and one bug.
Inconvenience – all data reported in AnalogInput cluster – temperature, pressure etc, but in ZCL we have separate clusters for each values. So, some software not expect, for example, the temperature value inside AnalogInput cluster, but expect it in temperature cluster.
Bug – when the sensor, connected to the some output, printed not one value (for example, BMP280 has 3 values – temperaure, humidity and pressure), the data transmited to coordinator under the same endpoint and cluster id. It is not possible in that situation to differenciate the values. The only difference – it is “description”, what makes it almost impossible to use that values in almost all software, which not do, of course, the synaxis analize of “description” attribute.

answer was:

Unfortunately, I cannot implement a separate cluster for each the value type. It requires a lot of memory.
See #2. Also, I did it for identical sensors on the same endpoint (DS18B20). Zigbee2MQTT can successfully parse this data.

Comment about "See #2" he meant the ability to have more then one sensor on one bus, but with different addresses, but our problem - it is about many values for the one endpoint.
Sadly, i not sure, is it possible to make the quirk for that firmware - it not have any "signature". All components, what can be used for identification - all is variables. There are only one posibility - to introduce some selection the quirk by the hands (from GUI or YAML).

We will be able to do this in a quirk without an issue. The value that is reported has enough info to split this up correctly. I’ll get something together when I have a moment.

The value that is reported has enough info to split this up correctly.

I mean not the quirk itself, i mean the detection of apllyment of that quirk. That is not a device with the fixed endpoints and manufacturer. They are may be any combinations. So - how to detect the need of the quirk?

Interesting, what is this then? Do you have a link to the product?

@dmulcahey  Of course, the link

Interesting, is there a way to change the manufacturer and the model? If so, users would need to add their own custom quirks locally.

is there a way to change the manufacturer and the model?

Yes, it is easy - some fields in the "Expert" configuration tab. There are some defaults, but it can be changed easy.

Does anyone has come up with some example or stub of a quirk for ptvo?


[fix #2442] It will give a error tip that resource not exist exwhen update resources.

What is the purpose of the pull request
*[fix #2442] It will give a tip that resource not exist exwhen update resources. *
Brief change log
update the update method of resource
remove unavailable code

Codecov Report

Merging #2483 into dev will increase coverage by 0.02%.
The diff coverage is 50.00%.

@@             Coverage Diff              @@
##                dev    #2483      +/-   ##
============================================
+ Coverage     35.88%   35.91%   +0.02%
- Complexity     2393     2396       +3
============================================
  Files           423      423
  Lines         19539    19540       +1
  Branches       2384     2384
============================================
+ Hits           7012     7018       +6
+ Misses        11902    11898       -4
+ Partials        625      624       -1

Impacted Files
Coverage Δ
Complexity Δ

...dolphinscheduler/api/service/ResourcesService.java
57.09% <50.00%> (-0.11%)
66.00 <0.00> (+1.00)
:arrow_down:

...he/dolphinscheduler/common/thread/ThreadUtils.java
74.60% <0.00%> (+6.34%)
14.00% <0.00%> (+1.00%)

...he/dolphinscheduler/api/service/LoggerService.java
91.30% <0.00%> (+8.69%)
7.00% <0.00%> (+1.00%)

Continue to review full report at Codecov.

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


Use bats for automated package tests

https://github.com/ztombol/bats-assert

Close as already implemented


ALL - edit footer legal positioning

Add all legal links to bottom like on polkadot

that will include:

impressum
privacy policy
terms & conditions

Please update all Websites with this new footer update.

I updated ACI this way:

and works very nicely:

I couldn't get it to work for other websites though.
Added all info in footer's markdown for all websites.
Please make it work:

[ ] twin
[ ] cloud
[ ] marketplace
[ ] farming
[ ] threefold_io
[ ] threefold.tech


Update dockerfiles for ORT training

What does this PR do?
Move some dependencies from run.sh to dockerfiles.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


iCrop Dataset - Website down

It looks like there is an ICP filing pending for the iCrop dataset. Thus, the webpage is down.
Let's wait a few days (ICP filing is a process that can take 15-30 business days). If it's not fixed, we should contact the authors/creators to request an update.
http://www.nwatch.top:8085/icrop/

Looks like the iCrop dataset website is back online under the same URL!

Resolving issue...


High availability with Zookeeper

Is there a solution to handle spark master url like spark://host1:port1,host2:port2.
Cluster configuration is based on settings spark.deploy.recoveryMode and spark.deploy.zookeeper.url
What is the best approach for rest client api?

Hi @ptriboll,
I am not so familiar with the Zookeeper setup.
However, from what I can see the spark master URL is used twice by the client to build the request:

In the address of the http request -> This must obviously be a single address.
In the spark properties map -> All properties in this map should be acknowledged by Spark, as described in the configuration documentation. According to it, the spark.master param does not accept a list of host:ports in the Standalone cluster setup.

If it turns out it is possible to give a list of hosts in the Standalone mode then of course we should support it.


Fixed the issue that the editing context is not in sync between inlin…

…e expression editing and the expression editor.
https://github.com/dmetzgar/wf-rehost-roslyn/issues/5

Great work :shipit:

fixes #7
fixes #8


ClientError and Feedback don't indicate impersonation well

They both just show as the apparent user.  This can be annoying, especially for error logging when we are going back in to impersonate a user, and would like to distinguish the errors we are reproducing/troubleshooting vs. the actual user experiencing the error!
Ideally we would handle this symmetrically with "TrackLog" and have the main user be the "auth" user, and have an additional field indicating impersonation.   But this would require adding new colums to the DB.
In the meantime, I do think we could just change the semantics such that we record the "auth" user, in both these tables.   That would be a big step in the right direction, I think, and we may never need to add that extra flag.

So I didn't have this quite right --- ClientError actually does show the auth user -- but it is still really useful to know if impersonation is happening during the error.  I added that info to the email, which was easy enough without DB changes.
Also changed feedback to save the auth user -- think we can close this ticket and declare victory.


I try get data with SPO2, VO2. VO2_MAX .But i don’t get on Sam Sung watch 4?

from https://developer.android.com/reference/kotlin/androidx/health/services/client/data/DataType#VO2_MAX() . All return 0

Hello,
SpO2 is not currently supported. Can you provide more information about your use case so I can pass the details back to the engineering team?
For VO2_MAX(), how long was the exercise length for your test? Some devices require many minutes of exercise (~20 minutes) to calculate and then return a VO2 Max value. Additionally (one the time conditions are met), Health Services returns a VO2_Max value when flush() is called. This happens either by manually calling flush or when the exercise is paused or stopped.

thank you for your support. with steps, when i run 20 minus, I get ManagerSensor, but it update lately. Is it possible to update realtime steps?

You can use Health Service's Exercise Client to get real time steps as part of a Running exercise. Our Exercise Samples are a good place to start, as they record a Running exercise, you would just need to also request steps as a data type.
To clarify, is this for steps as part of an app? Or are you looking to integrate steps into something like a watchface?