H7066 spotlights limited functionality.

First off, thank you for your work on this great add-on. It's already proving to be way more thorough than the alternatives.
Anyways, I configured everything earlier, and it picked up my H7066 right away. It created the main light entity with all the built in effects, and 4 segments presumably for controlling each light (There are 4 spotlights, each individually addressable via the app). The problem is that neither the effects nor the segments seem to work from HA. I can control the main light entity, which changes the power, level, and color of everything together, but changing the effect has no... effect, and changing the segments does nothing. The lights are LAN control enabled, and I see the commands in the log, and the MQTT messages in MQTT explorer, but they have no effect on the physical lights.
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=REDACTED
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_EMAIL=REDACTED
GOVEE_PASSWORD=REDACTED
GOVEE_MQTT_PASSWORD=REDACTED
GOVEE_MQTT_USER=addons
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-07T16:16:42 INFO  govee::commands::serve] Starting service. version 2024.01.07-92fb55e0
[2024-01-07T16:16:42 INFO  govee::commands::serve] Querying platform API for device list
[2024-01-07T16:16:43 INFO  govee::commands::serve] Querying undocumented API for device + room list
[2024-01-07T16:16:44 INFO  govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-07T16:16:44 INFO  govee::commands::serve] Starting LAN discovery
[2024-01-07T16:16:44 INFO  govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted.
[2024-01-07T16:16:48 INFO  govee::commands::serve] Devices returned from Govee's APIs
[2024-01-07T16:16:48 INFO  govee::commands::serve] Backyard Spotlights (A4:2A:CC:38:32:30:55:39) sku=H7066
[2024-01-07T16:16:48 INFO  govee::commands::serve]   LAN API: ip=<IP_ADDRESS>
[2024-01-07T16:16:48 INFO  govee::commands::serve]   Platform API: devices.types.light. supports_rgb=true supports_brightness=true
[2024-01-07T16:16:48 INFO  govee::commands::serve]                 color_temp=Some((2000, 9000)) segment_rgb=Some(0..4)
[2024-01-07T16:16:48 INFO  govee::commands::serve]   Undoc: room=None supports_iot=true ble_only=false
[2024-01-07T16:16:48 INFO  govee::commands::serve]
[2024-01-07T16:16:48 INFO  govee::service::http] http server addr is <IP_ADDRESS>:8056
[2024-01-07T16:16:54 INFO  govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted.
[2024-01-07T16:21:21 INFO  govee::service::hass] Home Assistant status changed: offline
[2024-01-07T16:22:18 INFO  govee::service::hass] Home Assistant status changed: online
[2024-01-07T16:22:49 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON"}
[2024-01-07T16:22:56 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON","color":{"r":5,"g":255,"b":88}}
[2024-01-07T16:22:59 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON","brightness":100}
[2024-01-07T16:23:23 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"OFF"}
[2024-01-07T16:23:25 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"OFF"}
[2024-01-07T16:25:30 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON"}
[2024-01-07T16:25:35 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON","effect":"Winter"}
[2024-01-07T16:25:41 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON","effect":"Rainbow"}
[2024-01-07T16:25:48 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"OFF"}
[2024-01-07T16:38:29 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON"}
[2024-01-07T16:38:49 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON","effect":"Aurora"}
[2024-01-07T16:38:54 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON"}
[2024-01-07T16:39:00 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 1: {"state":"ON"}
[2024-01-07T16:39:05 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 2: {"state":"ON"}
[2024-01-07T16:39:05 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON"}
[2024-01-07T16:39:09 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 1: {"state":"ON","brightness":100}
[2024-01-07T16:39:12 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 1: {"state":"ON","color":{"r":7,"g":255,"b":61}}
[2024-01-07T16:39:18 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON"}
[2024-01-07T16:39:22 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON","brightness":98}
[2024-01-07T16:39:23 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON","color":{"r":94,"g":255,"b":40}}
[2024-01-07T16:39:24 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON","color":{"r":15,"g":79,"b":255}}
[2024-01-07T16:39:27 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON"}
[2024-01-07T16:39:31 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON","color":{"r":167,"g":5,"b":255}}
[2024-01-07T16:39:36 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 2: {"state":"ON","brightness":100}
[2024-01-07T16:39:39 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 2: {"state":"ON","color":{"r":255,"g":136,"b":10}}

Thanks!

The new govee platform API is unfortunately pretty buggy and inconsistent, and returns wrong information about a number of devices, so there is a good chance that yours might also be one of the affected devices.  Your device isn't listed on https://developer.govee.com/docs/support-product-model but I don't know if that list is especially meaningful.
Both segment and scene control will prefer to use the platform API because that is the only documented way to set those.
You may want to try setting the debug level to govee=trace to see if there is additional information revealed, but what I suspect we'll see is that the platform API is being called and that is indicating success.
Sometimes the devices themselves get in a bad state and need to be power cycled; it might be worth a try if that is easy to do.

Ok, sorry for the delay. Here are the the trace logs. I had difficulty trying to capture everything on startup, as even the download full log link in supervisor was truncating. Had to grab them from docker. Anyways, here we go.
Addon startup:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=REDACTED
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_EMAIL=REDACTED
GOVEE_PASSWORD=REDACTED
GOVEE_MQTT_PASSWORD=REDACTED
GOVEE_MQTT_USER=addons
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-08T08:47:38 INFO  govee::commands::serve] Starting service. version 2024.01.07-92fb55e0
[2024-01-08T08:47:38 INFO  govee::commands::serve] Querying platform API for device list
[2024-01-08T08:47:38 TRACE govee::cache] cache miss for device-list
[2024-01-08T08:47:39 INFO  govee::commands::serve] Querying undocumented API for device + room list
[2024-01-08T08:47:39 TRACE govee::cache] cache hit for account-info
[2024-01-08T08:47:39 TRACE govee::service::iot] LoginAccountResponse {
    a: "testiot.cert",
    b: "testIot",
    account_id: REDACTED,
    client: "REDACTED",
    is_savvy_user: true,
    refresh_token: Some(
        "",
    ),
    client_name: Some(
        "",
    ),
    push_token: Some(
        "",
    ),
    version_code: Some(
        "",
    ),
    version_name: Some(
        "",
    ),
    sys_version: Some(
        "",
    ),
    token: "REDACTED",
    token_expire_cycle: 57600,
    topic: "GA/a5679b40d6de92eda84288ea0ba5b530",
}
[2024-01-08T08:47:39 TRACE govee::cache] cache hit for iot-key
[2024-01-08T08:47:39 TRACE govee::service::iot] IotKey {
    endpoint: "aqm3wd1qlc3dy-ats.iot.us-east-1.amazonaws.com",
    log: "pro0",
    p12: "REDACTED",
    p12_pass: "REDACTED",
}
[2024-01-08T08:47:40 INFO  govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-08T08:47:40 INFO  govee::commands::serve] Starting LAN discovery
[2024-01-08T08:47:40 INFO  govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted.
[2024-01-08T08:47:40 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:47:40 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54232 data={"msg":{"cmd":"scan","data":{"ip":"<IP_ADDRESS>","device":"A4:2A:CC:38:32:30:55:39","sku":"H7066","bleVersionHard":"3.01.01","bleVersionSoft":"1.00.08","wifiVersionHard":"1.02.00","wifiVersionSoft":"2.05.08"}}}
[2024-01-08T08:47:40 TRACE govee::commands::serve] LAN disco: LanDevice { ip: <IP_ADDRESS>, device: "A4:2A:CC:38:32:30:55:39", sku: "H7066", ble_version_hard: "3.01.01", ble_version_soft: "1.00.08", wifi_version_hard: "1.02.00", wifi_version_soft: "2.05.08" }
[2024-01-08T08:47:40 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:47:40 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:47:40 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54233 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:47:40 TRACE govee::commands::serve] LAN disco: update and notify A4:2A:CC:38:32:30:55:39
[2024-01-08T08:47:42 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:47:44 INFO  govee::commands::serve] Devices returned from Govee's APIs
[2024-01-08T08:47:44 INFO  govee::commands::serve] Backyard Spotlights (A4:2A:CC:38:32:30:55:39) sku=H7066
[2024-01-08T08:47:44 INFO  govee::commands::serve]   LAN API: ip=<IP_ADDRESS>
[2024-01-08T08:47:44 INFO  govee::commands::serve]   Platform API: devices.types.light. supports_rgb=true supports_brightness=true
[2024-01-08T08:47:44 INFO  govee::commands::serve]                 color_temp=Some((2000, 9000)) segment_rgb=Some(0..4)
[2024-01-08T08:47:44 TRACE govee::commands::serve] HttpDeviceInfo {
    sku: "H7066",
    device: "A4:2A:CC:38:32:30:55:39",
    device_name: "Backyard Spotlights",
    device_type: Light,
    capabilities: [
        DeviceCapability {
            kind: OnOff,
            instance: "powerSwitch",
            parameters: Some(
                Enum {
                    options: [
                        EnumOption {
                            name: "on",
                            value: Number(1),
                            extras: {},
                        },
                        EnumOption {
                            name: "off",
                            value: Number(0),
                            extras: {},
                        },
                    ],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: Toggle,
            instance: "gradientToggle",
            parameters: Some(
                Enum {
                    options: [
                        EnumOption {
                            name: "on",
                            value: Number(1),
                            extras: {},
                        },
                        EnumOption {
                            name: "off",
                            value: Number(0),
                            extras: {},
                        },
                    ],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: Range,
            instance: "brightness",
            parameters: Some(
                Integer {
                    unit: Some(
                        "unit.percent",
                    ),
                    range: IntegerRange {
                        min: 1,
                        max: 100,
                        precision: 1,
                    },
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: SegmentColorSetting,
            instance: "segmentedBrightness",
            parameters: Some(
                Struct {
                    fields: [
                        StructField {
                            field_name: "segment",
                            field_type: Array {
                                size: Some(
                                    ArraySize {
                                        min: 1,
                                        max: 4,
                                    },
                                ),
                                element_range: Some(
                                    ElementRange {
                                        min: 0,
                                        max: 14,
                                    },
                                ),
                                element_type: Some(
                                    "INTEGER",
                                ),
                                options: [],
                            },
                            default_value: None,
                            required: true,
                        },
                        StructField {
                            field_name: "brightness",
                            field_type: Integer {
                                unit: None,
                                range: IntegerRange {
                                    min: 0,
                                    max: 100,
                                    precision: 1,
                                },
                            },
                            default_value: None,
                            required: true,
                        },
                    ],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: SegmentColorSetting,
            instance: "segmentedColorRgb",
            parameters: Some(
                Struct {
                    fields: [
                        StructField {
                            field_name: "segment",
                            field_type: Array {
                                size: Some(
                                    ArraySize {
                                        min: 1,
                                        max: 4,
                                    },
                                ),
                                element_range: Some(
                                    ElementRange {
                                        min: 0,
                                        max: 14,
                                    },
                                ),
                                element_type: Some(
                                    "INTEGER",
                                ),
                                options: [],
                            },
                            default_value: None,
                            required: true,
                        },
                        StructField {
                            field_name: "rgb",
                            field_type: Integer {
                                unit: None,
                                range: IntegerRange {
                                    min: 0,
                                    max: 16777215,
                                    precision: 1,
                                },
                            },
                            default_value: None,
                            required: true,
                        },
                    ],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: ColorSetting,
            instance: "colorRgb",
            parameters: Some(
                Integer {
                    unit: None,
                    range: IntegerRange {
                        min: 0,
                        max: 16777215,
                        precision: 1,
                    },
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: ColorSetting,
            instance: "colorTemperatureK",
            parameters: Some(
                Integer {
                    unit: None,
                    range: IntegerRange {
                        min: 2000,
                        max: 9000,
                        precision: 1,
                    },
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: DynamicScene,
            instance: "lightScene",
            parameters: Some(
                Enum {
                    options: [],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: MusicSetting,
            instance: "musicMode",
            parameters: Some(
                Struct {
                    fields: [
                        StructField {
                            field_name: "musicMode",
                            field_type: Enum {
                                options: [
                                    EnumOption {
                                        name: "Rhythm",
                                        value: Number(1),
                                        extras: {},
                                    },
                                    EnumOption {
                                        name: "Shiny",
                                        value: Number(2),
                                        extras: {},
                                    },
                                    EnumOption {
                                        name: "Luminous",
                                        value: Number(3),
                                        extras: {},
                                    },
                                    EnumOption {
                                        name: "Hopping",
                                        value: Number(4),
                                        extras: {},
                                    },
                                    EnumOption {
                                        name: "Sprouting",
                                        value: Number(5),
                                        extras: {},
                                    },
                                ],
                            },
                            default_value: None,
                            required: true,
                        },
                        StructField {
                            field_name: "sensitivity",
                            field_type: Integer {
                                unit: Some(
                                    "unit.percent",
                                ),
                                range: IntegerRange {
                                    min: 0,
                                    max: 100,
                                    precision: 1,
                                },
                            },
                            default_value: None,
                            required: true,
                        },
                        StructField {
                            field_name: "autoColor",
                            field_type: Enum {
                                options: [
                                    EnumOption {
                                        name: "on",
                                        value: Number(1),
                                        extras: {},
                                    },
                                    EnumOption {
                                        name: "off",
                                        value: Number(0),
                                        extras: {},
                                    },
                                ],
                            },
                            default_value: None,
                            required: false,
                        },
                        StructField {
                            field_name: "rgb",
                            field_type: Integer {
                                unit: None,
                                range: IntegerRange {
                                    min: 0,
                                    max: 16777215,
                                    precision: 1,
                                },
                            },
                            default_value: None,
                            required: false,
                        },
                    ],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
        DeviceCapability {
            kind: DynamicScene,
            instance: "diyScene",
            parameters: Some(
                Enum {
                    options: [],
                },
            ),
            alarm_type: None,
            event_state: None,
        },
    ],
}
[2024-01-08T08:47:44 INFO  govee::commands::serve]   Undoc: room=None supports_iot=true ble_only=false
[2024-01-08T08:47:44 TRACE govee::commands::serve] UndocDeviceInfo {
    room_name: None,
    entry: DeviceEntry {
        attributes_id: 20,
        device_id: Some(
            17882028,
        ),
        device: "A4:2A:CC:38:32:30:55:39",
        device_ext: DeviceEntryExt {
            device_settings: DeviceSettings {
                wifi_name: Some(
                    "Moms Friendly Robot Company",
                ),
                address: Some(
                    "CC:38:32:30:55:39",
                ),
                ble_name: Some(
                    "Govee_H7066_5539",
                ),
                topic: Some(
                    "GD/398495567dd0c20ebb40c9d3846fbad6",
                ),
                wifi_mac: Some(
                    "60:74:F4:1F:E8:F8",
                ),
                pact_type: Some(
                    1,
                ),
                pact_code: Some(
                    1,
                ),
                dsp_version_soft: None,
                wifi_soft_version: Some(
                    "2.05.08",
                ),
                wifi_hard_version: Some(
                    "1.02.00",
                ),
                ic: Some(
                    4,
                ),
                ic_sub_1: None,
                ic_sub_2: None,
                secret_code: Some(
                    "RwXMODIwVTk=",
                ),
                boil_water_completed_noti_on_off: true,
                completion_noti_on_off: true,
                auto_shut_down_on_off: true,
                water_shortage_on_off: false,
                mcu_soft_version: None,
                mcu_hard_version: None,
                sku: Some(
                    "H7066",
                ),
                device: Some(
                    "A4:2A:CC:38:32:30:55:39",
                ),
                device_name: Some(
                    "Backyard Spotlights",
                ),
                version_hard: Some(
                    "3.01.01",
                ),
                version_soft: Some(
                    "1.00.08",
                ),
                play_state: Some(
                    false,
                ),
                tem_min: None,
                tem_max: None,
                tem_warning: None,
                fah_open: None,
                tem_cali: None,
                hum_min: None,
                hum_max: None,
                hum_warning: None,
                hum_cali: None,
                net_waring: None,
                upload_rate: None,
                battery: None,
                wifi_level: None,
            },
            ext_resources: ExtResources {
                sku_url: Some(
                    "https://d1f2504ijhdyjw.cloudfront.net/sku-img/4a75d2fb962a6c9ed169313745c1a010-add_list_type_device_7066.png",
                ),
                head_on_img_new: Some(
                    "",
                ),
                head_on_img: Some(
                    "https://d1f2504ijhdyjw.cloudfront.net/sku-img/b5d43d73ded3072c534e98ddbe5e7ff6-new_light_title_7066_on.png",
                ),
                head_off_img: Some(
                    "https://d1f2504ijhdyjw.cloudfront.net/sku-img/927ca77f6a8762f0e147bdb901079bf2-new_light_title_7066_off.png",
                ),
                head_off_img_new: Some(
                    "",
                ),
                ext: Some(
                    "",
                ),
                ic: Some(
                    4,
                ),
            },
            last_device_data: LastDeviceData {
                online: false,
                tem: None,
                hum: None,
                last_time: None,
                avg_day_tem: None,
                avg_day_hum: None,
            },
        },
        device_name: "Backyard Spotlights",
        goods_type: 171,
        group_id: 0,
        pact_code: Some(
            1,
        ),
        pact_type: Some(
            1,
        ),
        share: Some(
            0,
        ),
        sku: "H7066",
        spec: "",
        support_scene: false,
        version_hard: "3.01.01",
        version_soft: "1.00.08",
    },
}
[2024-01-08T08:47:44 INFO  govee::commands::serve]
[2024-01-08T08:47:44 INFO  govee::service::http] http server addr is <IP_ADDRESS>:8056
[2024-01-08T08:47:46 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:47:49 TRACE govee::cache] cache hit for community-login
[2024-01-08T08:47:49 TRACE govee::cache] cache hit for one-click-shortcuts
[2024-01-08T08:47:49 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:47:49 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:47:49 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:47:49 TRACE govee::service::hass] register_with_hass: register entities
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/sensor/global-version/config -> {"availability_topic":"gv2mqtt/availability","name":"Version","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Govee to MQTT","manufacturer":"Wez Furlong","model":"govee2mqtt","sw_version":"2024.01.07-92fb55e0","identifiers":["gv2mqtt"]},"unique_id":"global-version","entity_category":"diagnostic","state_topic":"gv2mqtt/sensor/global-version/state","unit_of_measurement":null}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/button/global-purge_caches/config -> {"availability_topic":"gv2mqtt/availability","name":"Purge Caches","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Govee to MQTT","manufacturer":"Wez Furlong","model":"govee2mqtt","sw_version":"2024.01.07-92fb55e0","identifiers":["gv2mqtt"]},"unique_id":"global-purge_caches","command_topic":"gv2mqtt/purge-caches"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/scene/gv2mqtt-one-click-e987fdadc20f5ca8ac824581a226fc63/config -> {"availability_topic":"gv2mqtt/availability","name":"One-Click: Default: Xmas","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Govee to MQTT","manufacturer":"Wez Furlong","model":"govee2mqtt","sw_version":"2024.01.07-92fb55e0","identifiers":["gv2mqtt"]},"unique_id":"gv2mqtt-one-click-e987fdadc20f5ca8ac824581a226fc63","command_topic":"gv2mqtt/oneclick","payload_on":"One-Click: Default: Xmas"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/light/gv2mqtt-A42ACC3832305539/config -> {"availability_topic":"gv2mqtt/availability","name":null,"origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539","schema":"json","command_topic":"gv2mqtt/light/A42ACC3832305539/command","state_topic":"gv2mqtt/light/A42ACC3832305539/state","optimistic":false,"supported_color_modes":["rgb","color_temp"],"color_mode":true,"brightness":true,"brightness_scale":100,"effect":true,"effect_list":["Aurora","Blossom","Cherry blossoms","Christmas","Christmas Gift","Christmas Tree","Crossing","Desert","Dreamlike","Dynamic","Fall","Father's Day","Fire","Firefly","Flower Field","Forest","Glacier","Halloween","Halloween B","Halloween C","Happy","Moonlight","Mother's Day","Music: Hopping","Music: Luminous","Music: Rhythm","Music: Shiny","Music: Sprouting","Party","Rainbow","Seasonal","Sled","Spring","Star","Summer","Sunrise","Sunset","Thunderstorm","Valentine's Day","Winter"],"min_mireds":111,"max_mireds":500,"payload_available":"online"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/switch/gv2mqtt-A42ACC3832305539-powerSwitch/config -> {"availability_topic":"gv2mqtt/availability","name":"Power Switch","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539-powerSwitch","command_topic":"gv2mqtt/switch/A42ACC3832305539/command/powerSwitch","state_topic":"gv2mqtt/switch/A42ACC3832305539/powerSwitch/state"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/switch/gv2mqtt-A42ACC3832305539-gradientToggle/config -> {"availability_topic":"gv2mqtt/availability","name":"Gradient Toggle","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539-gradientToggle","command_topic":"gv2mqtt/switch/A42ACC3832305539/command/gradientToggle","state_topic":"gv2mqtt/switch/A42ACC3832305539/gradientToggle/state"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/light/gv2mqtt-A42ACC3832305539-0/config -> {"availability_topic":"gv2mqtt/availability","name":"Segment 001","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539-0","schema":"json","command_topic":"gv2mqtt/light/A42ACC3832305539/command/0","state_topic":"gv2mqtt/light/A42ACC3832305539/state/0","optimistic":true,"supported_color_modes":["rgb"],"color_mode":true,"brightness":true,"brightness_scale":100,"effect":true,"payload_available":"online"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/light/gv2mqtt-A42ACC3832305539-1/config -> {"availability_topic":"gv2mqtt/availability","name":"Segment 002","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539-1","schema":"json","command_topic":"gv2mqtt/light/A42ACC3832305539/command/1","state_topic":"gv2mqtt/light/A42ACC3832305539/state/1","optimistic":true,"supported_color_modes":["rgb"],"color_mode":true,"brightness":true,"brightness_scale":100,"effect":true,"payload_available":"online"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/light/gv2mqtt-A42ACC3832305539-2/config -> {"availability_topic":"gv2mqtt/availability","name":"Segment 003","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539-2","schema":"json","command_topic":"gv2mqtt/light/A42ACC3832305539/command/2","state_topic":"gv2mqtt/light/A42ACC3832305539/state/2","optimistic":true,"supported_color_modes":["rgb"],"color_mode":true,"brightness":true,"brightness_scale":100,"effect":true,"payload_available":"online"}
[2024-01-08T08:47:49 TRACE govee::service::hass] homeassistant/light/gv2mqtt-A42ACC3832305539-3/config -> {"availability_topic":"gv2mqtt/availability","name":"Segment 004","origin":{"name":"gv2mqtt","sw_version":"2024.01.07-92fb55e0","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Backyard Spotlights","manufacturer":"Govee","model":"H7066","via_device":"gv2mqtt","identifiers":["gv2mqtt-A42ACC3832305539"]},"unique_id":"gv2mqtt-A42ACC3832305539-3","schema":"json","command_topic":"gv2mqtt/light/A42ACC3832305539/command/3","state_topic":"gv2mqtt/light/A42ACC3832305539/state/3","optimistic":true,"supported_color_modes":["rgb"],"color_mode":true,"brightness":true,"brightness_scale":100,"effect":true,"payload_available":"online"}
[2024-01-08T08:47:49 TRACE govee::service::hass] register_with_hass: mark as online
[2024-01-08T08:47:49 TRACE govee::service::hass] gv2mqtt/availability -> online
[2024-01-08T08:47:49 TRACE govee::service::hass] register_with_hass: reporting state
[2024-01-08T08:47:49 TRACE govee::service::hass] gv2mqtt/sensor/global-version/state -> 2024.01.07-92fb55e0
[2024-01-08T08:47:49 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 5, b: 134 }, brightness: 100, scene: None, source: "LAN API", updated: 2024-01-08T16:47:40.060095363Z }
[2024-01-08T08:47:49 TRACE govee::service::hass] gv2mqtt/light/A42ACC3832305539/state -> {"state":"OFF"}
[2024-01-08T08:47:49 TRACE govee::service::hass] gv2mqtt/switch/A42ACC3832305539/powerSwitch/state -> OFF
[2024-01-08T08:47:49 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) gradientToggle
[2024-01-08T08:47:49 TRACE govee::service::hass] register_with_hass: done
[2024-01-08T08:47:49 INFO  govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted.
[2024-01-08T08:47:54 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:47:54 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54234 data={"msg":{"cmd":"scan","data":{"ip":"<IP_ADDRESS>","device":"A4:2A:CC:38:32:30:55:39","sku":"H7066","bleVersionHard":"3.01.01","bleVersionSoft":"1.00.08","wifiVersionHard":"1.02.00","wifiVersionSoft":"2.05.08"}}}
[2024-01-08T08:47:54 TRACE govee::commands::serve] LAN disco: LanDevice { ip: <IP_ADDRESS>, device: "A4:2A:CC:38:32:30:55:39", sku: "H7066", ble_version_hard: "3.01.01", ble_version_soft: "1.00.08", wifi_version_hard: "1.02.00", wifi_version_soft: "2.05.08" }
[2024-01-08T08:47:54 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:47:54 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:47:54 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54235 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:47:54 TRACE govee::commands::serve] LAN disco: update and notify A4:2A:CC:38:32:30:55:39
[2024-01-08T08:47:54 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:47:54 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:47:54 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:47:54 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 5, b: 134 }, brightness: 100, scene: None, source: "LAN API", updated: 2024-01-08T16:47:54.060826803Z }
[2024-01-08T08:47:54 TRACE govee::service::hass] gv2mqtt/light/A42ACC3832305539/state -> {"state":"OFF"}
[2024-01-08T08:47:54 TRACE govee::service::hass] gv2mqtt/switch/A42ACC3832305539/powerSwitch/state -> OFF
[2024-01-08T08:47:54 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) gradientToggle
[2024-01-08T08:48:10 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:48:10 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54236 data={"msg":{"cmd":"scan","data":{"ip":"<IP_ADDRESS>","device":"A4:2A:CC:38:32:30:55:39","sku":"H7066","bleVersionHard":"3.01.01","bleVersionSoft":"1.00.08","wifiVersionHard":"1.02.00","wifiVersionSoft":"2.05.08"}}}
[2024-01-08T08:48:10 TRACE govee::commands::serve] LAN disco: LanDevice { ip: <IP_ADDRESS>, device: "A4:2A:CC:38:32:30:55:39", sku: "H7066", ble_version_hard: "3.01.01", ble_version_soft: "1.00.08", wifi_version_hard: "1.02.00", wifi_version_soft: "2.05.08" }
[2024-01-08T08:48:10 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:48:10 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:48:10 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54237 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:48:10 TRACE govee::commands::serve] LAN disco: update and notify A4:2A:CC:38:32:30:55:39
[2024-01-08T08:48:10 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:48:10 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:48:10 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:48:10 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 5, b: 134 }, brightness: 100, scene: None, source: "LAN API", updated: 2024-01-08T16:48:10.073041622Z }
[2024-01-08T08:48:10 TRACE govee::service::hass] gv2mqtt/light/A42ACC3832305539/state -> {"state":"OFF"}
[2024-01-08T08:48:10 TRACE govee::service::hass] gv2mqtt/switch/A42ACC3832305539/powerSwitch/state -> OFF
[2024-01-08T08:48:10 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) gradientToggle

Turn on lights (Works as expected):
[2024-01-08T08:27:40 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON"}
[2024-01-08T08:27:40 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> Turn { value: 1 }
[2024-01-08T08:27:40 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:27:40 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:27:40 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54196 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:27:40 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:27:40 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:27:40 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54197 data={"msg":{"cmd":"devStatus","data":{"onOff":1,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:27:40 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:27:40 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:27:40 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:27:40 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: true, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 5, b: 134 }, brightness: 100, scene: None, source: "LAN API", updated: 2024-01-08T16:27:40.942492053Z }
[2024-01-08T08:27:40 TRACE govee::service::hass] gv2mqtt/light/A42ACC3832305539/state -> {"brightness":100,"color":{"b":134,"g":5,"r":255},"color_mode":"rgb","effect":null,"state":"ON"}
[2024-01-08T08:27:40 TRACE govee::service::hass] gv2mqtt/switch/A42ACC3832305539/powerSwitch/state -> ON
[2024-01-08T08:27:40 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) gradientToggle
[2024-01-08T08:27:45 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>

Change effects on light (No changes on physical device)
[2024-01-08T08:28:18 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON","effect":"Happy"}
[2024-01-08T08:28:18 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:28:18 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:28:18 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:28:45 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:28:56 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"ON","effect":"Christmas"}
[2024-01-08T08:28:56 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:28:56 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:28:56 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:29:45 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>

Turn on and change colors for individual segments (No changes on physical device)
[2024-01-08T08:29:53 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON"}
[2024-01-08T08:29:53 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 1: {"state":"ON"}
[2024-01-08T08:29:54 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 2: {"state":"ON"}
[2024-01-08T08:29:54 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON"}
[2024-01-08T08:30:10 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"ON","color":{"r":127,"g":172,"b":255}}
[2024-01-08T08:30:13 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 1: {"state":"ON","color":{"r":215,"g":150,"b":255}}
[2024-01-08T08:30:16 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 2: {"state":"ON","color":{"r":255,"g":158,"b":243}}
[2024-01-08T08:30:18 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"ON","color":{"r":255,"g":110,"b":84}}

[2024-01-08T08:32:30 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 0: {"state":"OFF"}
[2024-01-08T08:32:30 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 1: {"state":"OFF"}
[2024-01-08T08:32:30 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 2: {"state":"OFF"}
[2024-01-08T08:32:31 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) segment 3: {"state":"OFF"}

Turn off main entity (works as expected)
[2024-01-08T08:32:59 INFO  govee::service::hass] Command for Backyard Spotlights (A4:2A:CC:38:32:30:55:39): {"state":"OFF"}
[2024-01-08T08:32:59 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> Turn { value: 0 }
[2024-01-08T08:32:59 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:32:59 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:32:59 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54204 data={"msg":{"cmd":"devStatus","data":{"onOff":1,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:32:59 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:32:59 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:32:59 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54205 data={"msg":{"cmd":"devStatus","data":{"onOff":0,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:32:59 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:32:59 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:32:59 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:32:59 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: false, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 5, b: 134 }, brightness: 100, scene: Some("Christmas"), source: "LAN API", updated: 2024-01-08T16:32:59.988220625Z }
[2024-01-08T08:32:59 TRACE govee::service::hass] gv2mqtt/light/A42ACC3832305539/state -> {"state":"OFF"}
[2024-01-08T08:32:59 TRACE govee::service::hass] gv2mqtt/switch/A42ACC3832305539/powerSwitch/state -> OFF
[2024-01-08T08:32:59 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) gradientToggle

And here's the periodic (once a minute?) device scans I was seeing:
2024-01-08T08:30:45 TRACE govee::lan_api] Send disco packet to <IP_ADDRESS>
[2024-01-08T08:30:45 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54198 data={"msg":{"cmd":"scan","data":{"ip":"<IP_ADDRESS>","device":"A4:2A:CC:38:32:30:55:39","sku":"H7066","bleVersionHard":"3.01.01","bleVersionSoft":"1.00.08","wifiVersionHard":"1.02.00","wifiVersionSoft":"2.05.08"}}}
[2024-01-08T08:30:45 TRACE govee::commands::serve] LAN disco: LanDevice { ip: <IP_ADDRESS>, device: "A4:2A:CC:38:32:30:55:39", sku: "H7066", ble_version_hard: "3.01.01", ble_version_soft: "1.00.08", wifi_version_hard: "1.02.00", wifi_version_soft: "2.05.08" }
[2024-01-08T08:30:45 TRACE govee::lan_api] query status of <IP_ADDRESS>
[2024-01-08T08:30:45 TRACE govee::lan_api] LanDevice::send_request to <IP_ADDRESS> DevStatus
[2024-01-08T08:30:45 TRACE govee::lan_api] process_packet: addr=<IP_ADDRESS>:54199 data={"msg":{"cmd":"devStatus","data":{"onOff":1,"brightness":100,"color":{"r":255,"g":5,"b":134},"colorTemInKelvin":0}}}
[2024-01-08T08:30:45 TRACE govee::commands::serve] LAN disco: update and notify A4:2A:CC:38:32:30:55:39
[2024-01-08T08:30:45 TRACE govee::cache] cache hit for scene-list-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:30:45 TRACE govee::cache] cache hit for scene-list-diy-H7066-A4:2A:CC:38:32:30:55:39
[2024-01-08T08:30:45 TRACE govee::cache] cache hit for scenes-H7066
[2024-01-08T08:30:45 TRACE govee::service::hass] LightConfig::notify_state: state is DeviceState { on: true, online: None, kelvin: 0, color: DeviceColor { r: 255, g: 5, b: 134 }, brightness: 100, scene: Some("Christmas"), source: "LAN API", updated: 2024-01-08T16:30:45.922508414Z }
[2024-01-08T08:30:45 TRACE govee::service::hass] gv2mqtt/light/A42ACC3832305539/state -> {"brightness":100,"color":{"b":134,"g":5,"r":255},"color_mode":"rgb","effect":"Christmas","state":"ON"}
[2024-01-08T08:30:45 TRACE govee::service::hass] gv2mqtt/switch/A42ACC3832305539/powerSwitch/state -> ON
[2024-01-08T08:30:45 TRACE govee::service::hass] SelectConfig::notify_state: didn't find state for Backyard Spotlights (A4:2A:CC:38:32:30:55:39) gradientToggle

Hope there's something useful in there. I did notice there is a lot less chatter on the functionality that don't work. Not sure if that's just because the lan api seems to log more than the others, or if it's indicative of a problem. Let me know if there's anything else you'd like me to test.

Thanks for sharing that info.
What I suspect is happening is that the Platform API on Govee's side just isn't doing anything with the device.
Since we don't see any errors from the call to the platform API, govee2mqtt believes that the platform API indicated success, so at that point we think we're done.

Ok, thank you. Hopefully they continue to expand this new API and this will start working in the near future

Wanted to follow up and say that this is now working as expected. Both segment control and the effects. Not sure if it's something in the recent changes you've made, or more likely my relaxing the firewall on my end while testing the kettle. I suspect the latter. If you're aware of any specific ports that need to be open, I would love to hear it. Otherwise I'll just play with it on my end.
In any case, I'm going to close this as working. Thanks again for all your help

For the LAN APi: see https://github.com/wez/govee2mqtt/blob/main/docs/LAN.md,
if you want to use the Platform API you will need to allow port 443 to Govee's servers.
If you want to use the undocumented API (includes much better scene data and IoT notifications), in addition to port 443 you will need to allow port 8883 for the secure MQTT connection to Govee's servers (hosted in AWS), both for your home assistant instance, and for each of the individual Govee devices, as they communicate with each other over MQTT.

Great info, thanks again


Error Domain=GARSession Code=-3 when I try host cloud anchor

Hi guys,
I'm working on cloud anchors api and I have an issue when I try host cloud anchor. I don't use firebase as it is in sample.
So my source code the next:
`- (void)viewDidLoad {
....
NSError *error = nil;
self.gSession = [GARSession sessionWithAPIKey:@"my_key"
                             bundleIdentifier:nil
                                        error:&error];
self.gSession.delegate = self;
self.gSession.delegateQueue = dispatch_get_main_queue();

}`
In this place gSession is OK. There isn't any errors. When ARTrackingState is ARTrackingStateNormal then I perform tap:
` - (void)addImageWithGestureRecognizer:(UITapGestureRecognizer *)gestureRecognizer {
CGPoint tapLocation = [gestureRecognizer locationInView:self.sceneView];
NSArray<ARHitTestResult *> *hitTestResult = [self.sceneView hitTest:tapLocation types:ARHitTestResultTypeExistingPlane | ARHitTestResultTypeExistingPlaneUsingExtent | ARHitTestResultTypeEstimatedHorizontalPlane | ARHitTestResultTypeEstimatedVerticalPlane | ARSCNDebugOptionShowFeaturePoints];
if (!hitTestResult.firstObject && self.needDetectPlane) {
    return;
}

ARHitTestResult *result = hitTestResult.firstObject;

self.arAnchor = [[ARAnchor alloc] initWithName:@"My anchor" transform:result.worldTransform];
[self.sceneView.session addAnchor:self.arAnchor];

NSError *error = nil;
self.garAnchor = [self.gSession hostCloudAnchor:self.arAnchor error:&error];
MyLog(@"Host Cloud Anchor Error: %@", error);

}`
and I get error in this place: Error Domain=GARSession Code=-3. What did I miss?
Poddile.lock is the next:
` PODS:

ARCore (1.8.0):

GoogleToolboxForMac/Logger (~> 2.1)
"GoogleToolboxForMac/NSData+zlib (~> 2.1)"
GTMSessionFetcher/Core (~> 1.2)
Protobuf (~> 3.5)

BlocksKit (2.2.5):

BlocksKit/All (= 2.2.5)

BlocksKit/All (2.2.5):

BlocksKit/Core
BlocksKit/DynamicDelegate
BlocksKit/MessageUI
BlocksKit/UIKit

BlocksKit/Core (2.2.5)
BlocksKit/DynamicDelegate (2.2.5)
BlocksKit/MessageUI (2.2.5):

BlocksKit/Core
BlocksKit/DynamicDelegate

BlocksKit/UIKit (2.2.5):

BlocksKit/Core
BlocksKit/DynamicDelegate

Bolts (1.9.0):

Bolts/AppLinks (= 1.9.0)
Bolts/Tasks (= 1.9.0)

Bolts/AppLinks (1.9.0):

Bolts/Tasks

Bolts/Tasks (1.9.0)
FBSDKCoreKit (4.38.1):

Bolts (~> 1.9)

FBSDKLoginKit (4.38.1):

FBSDKCoreKit

FBSDKShareKit (4.38.1):

FBSDKCoreKit

GoogleToolboxForMac/Defines (2.2.0)
GoogleToolboxForMac/Logger (2.2.0):

GoogleToolboxForMac/Defines (= 2.2.0)

"GoogleToolboxForMac/NSData+zlib (2.2.0)":

GoogleToolboxForMac/Defines (= 2.2.0)

GTMSessionFetcher/Core (1.2.1)
IQKeyboardManager (6.3.0)
LGSideMenuController (2.1.1)
Protobuf (3.7.0)

DEPENDENCIES:

ARCore
BlocksKit
FBSDKCoreKit (~> 4.38.0)
FBSDKLoginKit (~> 4.38.0)
FBSDKShareKit (~> 4.38.0)
IQKeyboardManager
LGSideMenuController
Protobuf

SPEC REPOS:
https://github.com/cocoapods/specs.git:
- ARCore
- BlocksKit
- Bolts
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKShareKit
- GoogleToolboxForMac
- GTMSessionFetcher
- IQKeyboardManager
- LGSideMenuController
- Protobuf
SPEC CHECKSUMS:
ARCore: e907a1e975726eed59ad72e10e3226a8246e2417
BlocksKit: 7f422b971407001178d181a43b99014ea2591fe6
Bolts: ac6567323eac61e203f6a9763667d0f711be34c8
FBSDKCoreKit: 8d47857400e2f5bdea697a80daff882e91c84ef6
FBSDKLoginKit: 4621c690d9dd8628031a4791497062183ea34b0d
FBSDKShareKit: 6ffe22f0a0618eb7424d4104ab0ef3ce9643d42a
GoogleToolboxForMac: ff31605b7d66400dcec09bed5861689aebadda4d
GTMSessionFetcher: 32aeca0aa144acea523e1c8e053089dec2cb98ca
IQKeyboardManager: 2ca9d64893247556f53523dcd8d78641f0ba7c23
LGSideMenuController: ae40c80983ab8b8801c7cef0a6804d43aaa72d45
Protobuf: 7a877b7f3e5964e3fce995e2eb323dbc6831bb5a
PODFILE CHECKSUM: d59f2f2ffcd3e11902fa1348a24f026942f0023e
COCOAPODS: 1.6.0
`

Hello! And sorry you are running into this issue.
That error means that we don't think ARKit is tracking properly, but you already mentioned that have confirmed that it is.
Are you callingself.gSession's update: method with the current frame? We have an example of how to do this in our developer guide here: https://developers.google.com/ar/develop/ios/cloud-anchors-developer-guide-ios under the "Passing ARFrames to the GARSession" section.

yes, I do it like this:
-(void)session:(ARSession *)arSession didUpdateFrame:(ARFrame *)arFrame {     [self.gSession update:arFrame error:nil]; }

@sammcd Hi. Do you have any updates/suggestions for this issue?

Apologies for the slow response time, and thanks for following up!
I reviewed our code for every case that this error message can be returned, and it really looks like our library is not getting ARFrames that are in a good tracking state. Here are the next steps I would take to debug.

Confirm that the ARSession's delegate is set and session:didUpdateFrame: is getting called by logging something.
NSLog out the ARFrame's tracking state right before you call our update:error: method. I would look to check that the tracking state is good right before your host call.

Please let me know if that helps out at all or if you still get the same error.

@sammcd , Hi. You will smile but I forgot set ARSession's delegate. It was my fault. For now I get the correct cloud anchor in
- (void)session:(GARSession *)session didHostAnchor:(GARAnchor *)anchor


[tizen] nnstreamer-nntrainer filter.so is suffering from undefined symbol issue

In dlog, libnnstreamer_filter_nntrainer.so has undefined symbol.
E/nnstreamer( 7703): Cannot open nntrainer(/usr/lib/nnstreamer/filters/libnnstreamer_filter_nntrainer.so) with error /usr/lib/nnstreamer/filters/libnnstreamer_filter_nntrainer.so: undefined symbol: _ZTVN9nntrainer13NeuralNetworkE.

:octocat: cibot: Thank you for posting issue #757. The person in charge will reply soon.

I think this is happened from old snapshot. Closing for now, reopen if it happens again.


mysql updated to avoid warnings on new nodejs

Update text to show new terminal output for the shell

Recap

Creating SQL databases

DB creation control

Challenge

Inserting values

Problem:
8. 1. Creating tables - missing ; in source line
8. 2. Multi-line statements - mysql command run on open tabs when shell is already running causing problem
10. 2. Inserting more values - code to paste into collection-2.sql contains error shown when sourcing the file, see image

Challenge - - mysql command run on open tabs when shell is already running causing problem


Handle unexpected arguments in server['message']

On some servers (ubuntu 16.04), if you run apistar with localhost, then message['server'] will return 4 values instead of 2.
Example:
$ host localhost
localhost has address <IP_ADDRESS>
localhost has IPv6 address ::1
apistar run --host localhost --port 5010

This can be worked around by specifying <IP_ADDRESS> instead of localhost, or editing /etc/hosts, but a more reliable solution is to limit the returned range within the code.
Traceback/debuging
ValueError: too many values to unpack (expected 2)
File "/usr/share/python/certainmesh/lib/python3.6/site-packages/apistar/components/umi.py", line 19, in get_url
Open an interactive python shell in this framehost, port = message['server']

>>> print(message.get('server'))
('::1', 5010, 0, 0)
>>> host, port = message['server'][0:2]
>>> host
'::1'
>>> port
5010

I’d first want to understand:
What are the other two parts of the value? Why is it populated as 4 values?

I don't know exactly where or how far down apistar is getting the address for localhost. However, this is actually an ipv6 issue. I just happened
to come across it because the servers I'm deploying to expose it with localhst. A lot of linux servers add <IP_ADDRESS> and ::1 for localhost in /etc/hosts. Somewhere, one of apistar's dependencies is using a "socket.get*" call. Essentially, if the address your server is running on has an ipv6 address, you get two extra argument called "flowinfo" and "scopeid".
https://docs.python.org/3/library/socket.html#socket-families

A pair (host, port) is used for the AF_INET address family, where host is a string representing either a hostname in Internet domain notation like 'daring.cwi.nl' or an IPv4 address like '<IP_ADDRESS>', and port is an integer.

For AF_INET6 address family, a four-tuple (host, port, flowinfo, scopeid) is used, where flowinfo and scopeid represent the sin6_flowinfo and sin6_scope_id members in struct sockaddr_in6 in C. For socket module methods, flowinfo and scopeid can be omitted just for backward compatibility. Note, however, omission of scopeid can cause problems in manipulating scoped IPv6 addresses.

If the address you're binding to only has an ipv4 address, it looks like this:
>>> socket.getaddrinfo("localhost", 8080, 0, 0, socket.IPPROTO_TCP, 0)
[(2, 1, 6, '', ('<IP_ADDRESS>', 8080))]

If the address you're binding to has both ipv4 and ipv6, you get this:
>>> socket.getaddrinfo("localhost", 8080, 0, 0, socket.IPPROTO_TCP, 0)
[(10, 1, 6, '', ('::1', 8080, 0, 0)), (2, 1, 6, '', ('<IP_ADDRESS>', 8080))]

What I observed is that I would randomly get one or the other simply by refreshing an endpoint or running curl in a loop. Once apistar
went to ipv6, I would get the traceback below. I used the Werkzeug traceback console in the browser to find the issue.
Traceback (most recent call last):
  File "/opt/certainmesh/lib/python3.6/site-packages/apistar/frameworks/asyncio.py", line 125, in __call__
    response = await self.http_injector.run_all_async(funcs, state=state)
  File "/opt/certainmesh/lib/python3.6/site-packages/apistar/components/dependency.py", line 430, in run_all_async
    ret = step.func(**kwargs)
  File "/opt/certainmesh/lib/python3.6/site-packages/apistar/frameworks/asyncio.py", line 121, in __call__
    response = await self.http_injector.run_all_async(funcs, state=state)
  File "/opt/certainmesh/lib/python3.6/site-packages/apistar/components/dependency.py", line 430, in run_all_async
    ret = step.func(**kwargs)
  File "/opt/certainmesh/lib/python3.6/site-packages/apistar/components/umi.py", line 19, in get_url
    host, port = message['server']
ValueError: too many values to unpack (expected 2)

And here is the state var from debug:
File "/opt/certainmesh/lib/python3.6/site-packages/apistar/frameworks/asyncio.py", line 125, in __call__
response = await self.http_injector.run_all_async(funcs, state=state)
[console ready]
>>> print(state)
{'message': {'channel': 'http.request', 'server': ('::1', 5010, 0, 0), 'client': ('::1', 57020, 0, 0), 'scheme': 'http', 'http_version': '0.0', 'method': 'GET', 'path': '/', 'query_string': b'', 'headers': [[b'x-real-ip', b'<IP_ADDRESS>'], [b'x-forwarded-for', b'<IP_ADDRESS>'], [b'host', b'localhost:5010'], [b'connection', b'close'], [b'cache-control', b'max-age=0'], [b'upgrade-insecure-requests', b'1'], [b'user-agent', b'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'], [b'accept', b'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'], [b'accept-encoding', b'gzip, deflate, br'], [b'accept-language', b'en-US,en;q=0.9'], [b'cookie', b'session_id=cab6df82-2d78-11e8-873b-005056aeba8d']]}, 'channels': {'reply': <uvicorn.protocols.http.ReplyChannel object at 0x7f77c42499d8>}, 'handler': <function homepage at 0x7f77c745aea0>, 'kwargs': {}, 'exc': ValueError('too many values to unpack (expected 2)',), 'response_headers': Headers([])}
>>>

Going to close this off given that we're now ASGI based. Happy to see it re-opened if it is still an issue tho.


iOS Safari Audio Issue

I am having an issue with iOS safari, I know there is a common issue with iOS safari where it doesn't support certain common audio formats, but is there a workaround, using some examples, I go the following working:
ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i "0:1" -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 http://example.com:8081/test-stream
This was a version which was using my video from my Mac, streaming it to my website, all devices and browsers worked (other than those that don't support WebSockets of course), but Safari iOS played the video but not the audio...?
Any fixes for this?
Thanks in advanced,
~Danny

iOS needs a first interaction before play audio, try adding some play
button, don't use autostart.
2017-05-19 9:35 GMT-03:00 DannySMc<EMAIL_ADDRESS>
I am having an issue with iOS safari, I know there is a common issue with
iOS safari where it doesn't support certain common audio formats, but is
there a workaround, using some examples, I go the following working:
ffmpeg -f avfoundation -framerate 30 -video_size 640x480 -i "0:1" -f
mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0
http://example.com:8081/test-stream
This was a version which was using my video from my Mac, streaming it to
my website, all devices and browsers worked (other than those that don't
support WebSockets of course), but Safari iOS played the video but not the
audio...?
Any fixes for this?
Thanks in advanced,
~Danny
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/phoboslab/jsmpeg/issues/165, or mute the thread
https://github.com/notifications/unsubscribe-auth/AIZCS1E8kYJ97pqYiNFR3eWhUC9kGPkcks5r7YySgaJpZM4Ngd44
.

Audio on iOS needs to be unlocked. Use the HTML video element; it comes with an unlock button on iOS.

how to play audio at ios in this way:
player = new JSMpeg.Player('aus.ts',{});
i add a event listener at touchstart, the callback call palyer.play();　but the audio is not work.

On iOS 9.3.3 it still does not play with the HTML tag... nothing happens when the lock is clicked....

This is my solution:

document.addEventListener('touchstart', function () {
  // 手动启动audio，解除新的ios audio不能自动播放的问题
  var audio = document.createElement('audio')
  audio.autoplay = 'autoplay'
  audio.volume = 0
  audio.src = 't.aac'
  // 手动触发audiocontext,让其从suspended变为running模式
  _this.player.audioOut.unlock(function() {
    _this.unlockstate = true
  })
})

t.acc is a little audio file, just 1s, use to trigger audio element.

_this.unlockstate = true

This is my solution:
document.addEventListener('touchstart', function () {
// 手动启动audio，解除新的ios audio不能自动播放的问题
var audio = document.createElement('audio')
audio.autoplay = 'autoplay'
audio.volume = 0
audio.src = 't.aac'
// 手动触发audiocontext,让其从suspended变为running模式
_this.player.audioOut.unlock(function() {
_this.unlockstate = true
})
})
t.acc is a little audio file, just 1s, use to trigger audio element to work.

audioOut.unlock make video play speed up. Do you know how to solve it?


Player Menu shows "%1" for HP, tokens, etc...

I've had this weird issue with my CW.
CW 0.97 github version.
Anyone has encountered this issue before, or knows where the problem is?
Thanks!

Are you using the corresponding (BETA) version of HL2RP from the Store with this?


Quick Start Help

Hi,
I'm pretty new to Cordova and using plug-ins. I've installed the plug-in to my project successfully, but not sure what file to add Step 1 to. Adding it to my main js file causes "AdColony is not defined" errors when debugging. I then added a reference to AdColony.js in my index.html file hoping that when the app would run, it would find it. This wasn't the case. You can laugh :) I'm still learning the ropes of this framework.
Can you provide a little more detail on how to configure the plug-in?
I appreciate any help. Thanks,
Felix

Found out documentation for AdMob was closely related. I just missed that the initialize method had to be within the deviceReady method. For others that need more info, read this:
https://github.com/floatinghotpot/cordova-admob-pro


STRA related follow ups

Explore available vendors for penetration scans

Please review - add comments or edit within cc: @lmullane @abin-aot @m-prodan @arielleandrews
https://bcgov.sharepoint.com/:w:/r/teams/03521/Shared Documents/General/STRAs and PIAs/CITZ000816 - FOI System - STRA Report v0.2.docx?d=wd353f147caf64842b49c92e7d923fb46&csf=1&web=1

@mpilchar @lmullane @m-prodan @arielleandrews  - Comments added into the doc on Teams, Main queries are here

Are we adding File Conversion on the VM to this STRA, because this is NOT on openshift, its on separate VM ?

As per AXIS STRA, their services and url endpoints are available only inside BC GOV n/w and they didnt made it open to public internet. Considering that fact, why should we consider our FOI FLOW application to be wide open to internet? why cant we restrict this BC GOV network as AXIS, so that we can tighten the security ?

Do we need to add a "access and availability" section on the STRA, similar to what AXIS STRA has? so that what ever decision(public/private to BC GOV) we take will be covered in the STRA


Email sender implementation

This PR is part of solution #265 and the effort of splitting #438 into smaller chunks.
It adds Email structure to the notify module, which allows sending emails but is not used or initialized at this moment. Email object initialization and retrieval of user's emails logic from storage will be done in separate PR, this PR only adds generic email sender.

One more thing - if you split sender and email service it will be nice to have a simple version of the sender doing the send directly, without all buffering thing. Not as a replacement for the buffered one, but additional implementation. At the same time, you may have NoOp sender, but this is already another level of nice-to-have.

One more thing - if you split sender and email service it will be nice to have a simple version of the sender doing the send directly, without all buffering thing. Not as a replacement for the buffered one, but additional implementation. At the same time, you may have NoOp sender, but this is already another level of nice-to-have.

Re splitting sender and email service: I don't see why we would want that at this point in time without any consumers of separate email service. My vote is against separating these before there is any demand for that.
Re NoOp sender, I can't see where and how it would be used. Would you please describe your scenario? Is it logging everything instead of actually sending it, or something else?

I (supposedly) fixed all the problems you mentioned but found that the code is broken after I carelessly changed the code after your remark instead of justifying its existence.
It is fixed in https://github.com/paskal/remark/pull/4, please review before reviewing this PR.

Last commit improves situation a lot, but on the other side introduce so many changes it's better to look at a whole module once again, my apologies.


Tests fail for test_sql.py in CI because dfsql and its dependencies won't install

Describe the problem

I'm guessing some PyPI package released a broken version of mindsdb_sql which fails to install.
This breaks all CI tests running test_sql now.
Source code / logs
Error looks like this:
Run pip install "dfsql>=0.4.2" "pyparsing<=2.4.7" && pytest modin/experimental/sql/test/test_sql.py
Collecting dfsql>=0.4.2
  Downloading dfsql-0.6.8-py3-none-manylinux1_x86_64.whl (27 kB)
Collecting pyparsing<=2.4.7
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.8/67.8 kB 2.7 MB/s eta 0:00:00
Requirement already satisfied: pandas in /usr/share/miniconda3/envs/modin/lib/python3.8/site-packages (from dfsql>=0.4.2) (1.4.3)
Collecting confi>=<IP_ADDRESS>
  Downloading confi-<IP_ADDRESS>.tar.gz (3.2 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting mindsdb-sql>=0.0.17
  Downloading mindsdb_sql-0.3.[11](https://github.com/modin-project/modin/runs/7764784298?check_suite_focus=true#step:35:12).tar.gz (54 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.2/54.2 kB [19](https://github.com/modin-project/modin/runs/7764784298?check_suite_focus=true#step:35:20).2 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-suxfqk3m/mindsdb-sql_98e078d7f9f34547b[33](https://github.com/modin-project/modin/runs/7764784298?check_suite_focus=true#step:35:34)4a659d7501bd0/setup.py", line 8, in <module>
          with open('requirements.txt') as req_file:
      FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

Upstream released mindsdb-sql==0.3.12 which fixed the issue.

@vnlitvinov I'm actually still seeing this here: https://github.com/modin-project/modin/actions/runs/3092084044/jobs/5003001062
I'm not sure if this is a flake. Will try re-running.

cc @anmyachev @modin-project/modin-contributors @modin-project/modin-core this bug may be breaking CI for your PRs.


containerapp compose create is not respecting the --location argument

Related command
az containerapp compose create
Extension name (the extension in question)
containerapp-compose
Description of issue (in as much detail as possible)
When running the command and specifying a location via -l or --location it ignores the specified location and defaults to 'westus3' which "is not currently supported".

That value is not coming from my param-persist either:

route to CXP team

@charris-msft What versions of the extensions (containerapp and containerapp-compose) do you have installed?

@smurawski
Name                  Path                                                        Preview    Version
--------------------  ----------------------------------------------------------  ---------  ---------
containerapp          C:\Users\charris\.azure\cliextensions\containerapp          True       0.3.9
containerapp-compose  C:\Users\charris\.azure\cliextensions\containerapp-compose  True       0.2.0

@charris-msft
I'm finding another bug in the 0.3.9 that has blocked me from testing so far ( https://github.com/Azure/azure-cli-extensions/issues/5253 ) , but I was able to deploy successfully to Canada Central with the containerapp extension at 0.3.8 and 0.3.7.
I'll continue to check with 0.3.9 with a private image shortly.

@charris-msft
I've confirmed your problem - it appears that the resource group location is overriding command line provided location arguments - which appears to be happening regardless of containerapp extension version.  I'll investigate further.

@smurawski I tested by moving my existing resources to a new rg in the location where I wanted to create the new containerapp, ran the command and it didn't error out this time. (still running)

This is fixed in https://github.com/Azure/azure-cli-extensions/pull/5262 (version 0.2.1) which is available now.

Looks like it's working - it created the ACA Environment in the correct location.
Though because I'm still getting prompted my registry credentials (which I don't know), I can't confirm that the ACA gets created in the correct location as well.

Thanks @charris-msft !  The registry credentials prompting should be fixed once v0.3.10 of the containerapp extension ships.
The PR for that is here - https://github.com/Azure/azure-cli-extensions/pull/5241

@charris-msft and @smurawski can we close this issue, i see that the PR is merged.

I did some more testing and I'm comfortable closing it.


trouble with cyrillic images

they upload to server normaly, but dont want to load on view like:
http://<IP_ADDRESS>:3000/upload/Братльнаякартинка.jpg
error: 404 - not found
with english names - all ok

This is out of my reach, not sure how o handle this. I can't test it, you provided path to local host. Create a reproducible test app. Thanks.

I am closing this issue, please reopen if necessary.

Same issue for Chinese filenames


Export types

What kind of change does this PR introduce?
This PR will allow types defined in src/lib/types.ts to be exported. It addresses issue #126.
What is the current behavior?
No types are currently exported.
What is the new behavior?
Types will be exported.

Thanks for the PR @Strift! Can you limit the exports to just the types? No need to export postgresColumnSchema, postgresConfigSchema, etc.

Hello @soedirgo!
I've made some changes to export only the types. I hope it's good this time. :crossed_fingers:

👍 Thanks again!

@Strift - if you send your postal address and tshirt size to<EMAIL_ADDRESS>we can send you some swag :)


Versioning of data, schema, and methodology

This spike is to determine how to capture version information within the Qube config files for csvcubed; the main part of this spike though is to figure out whether we need to capture three types of version information to accurately reflect the status of any particular dataset.
There are three areas which we would need to cover in order to properly convey comparability across editions within a publication.

[ ] Versioning of data

[ ] Semantic versioning of what constitutes a new release (i.e. a new time period in a time series dataset)
[ ] Semantic versioning of what constitutes an update
[ ] Changes to existing codelist members, or addition of new codes

[ ] Versioning of schema

[ ] Layout changes of source files, does this matter?
[ ] Layout changes of the DSD breaking cross-release "mechanical" comparability

[ ] Versioning of methodology

[ ] Is there a statistical break to the releases which renders comparability between periods impossible

Current thoughts available here. Holding issue pending wider discussion in DM/DE standup on Friday morning.


Fix this_platform_is_not_supported on OpenBSD.

I followed the steps of @mneumann.
Now runs on snapshot OpenBSD 5.9 with X11, rustc 1.6.0 and cargo 0.9.0 from https://github.com/jasperla/openbsd-wip.

Thanks!


If the tool source is in additional_includes, convert the tool source in tool.json to additional_include path

Description
flow yaml:

tool.json

Please add an informative description that covers that changes made by the pull request and link all relevant issues.
All Promptflow Contribution checklist:

[ ] The pull request does not introduce [breaking changes].
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.
[ ] Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: suggested workflow.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

https://github.com/microsoft/promptflow/commit/3396ec4f9e801b0dadb30b6bb2c66c362906c0fe


Brower Application S3 - Cloudfront Bucket Permissions Policy

I recently installed that latest version of MSAM<PHONE_NUMBER>) in US-West-2 after wiping out a previous install.
This new version incorporated Cloudfront which I don't think was on my previous install from November.  After letting it deploy I tried the CloudFront URL after the console said the state was 'Deployed'.  However, the page didn't load - I received an Access Denied error.  After waiting another hour and trying again, same thing.  I tried private mode and a different browser, same thing.
curling cloudfront gives me the following: (some user specific data has been changed)
curl https://<random CF URL>.cloudfront.net
<?xml version="1.0" encoding="UTF-8"?>
<Error>AccessDenied<Message>Access Denied</Message><RequestId>XXXXXXXXXXXXXXX</RequestId><HostId>3gFil9s66tpmcLhxnfUeHttKJMfPFa5501NemDJJmQPxKgCtEDHEXP+cNwYm9q3gkwCAi3BQpTc=</HostId></Error>

I checked the CloudFront permissions and it all appears to be accurate (although I don't use cloudfront much)
However I did notice the Bucket ACL no longer sets items to public (which I think is the point) even though it's referenced in the install Docs. Anyway, after setting items in the bucket to public, I was able to see the Browser App.  How can I correct this so I don't send users to the bucket directly?

Please disregard - forgot to add the index.html to the end of my request.

Thanks Greg. We should add index.html to the default page for CloudFront. I’ll open an Issue for that.
On Feb 18, 2020, at 11:53 AM, Greglobrien<EMAIL_ADDRESS>wrote:

Please disregard - forgot to add the index.html to the end of my request.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/awslabs/aws-media-services-application-mapper/issues/94?email_source=notifications&email_token=AH6JQVGMFORHV6KZDS4IKPDRDQ4BNA5CNFSM4KXLAWX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMEDWBA#issuecomment-587741956, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH6JQVFCHCVHRGV4TST4AMDRDQ4BNANCNFSM4KXLAWXQ.


Feature request: Support proxy mode

This would enable this crate to be used on windows 10, where unix domain socket is supproted but sending fds over it is not supported.
This would also make it possible to pool connection and further improve performance, at the cost of more complex code and more code to maintain.
But I think the benefit outweight the cost.

The windows support is blocked on https://github.com/tokio-rs/tokio/issues/2201

Superseded by openssh-rust/openssh#152 which avoids external ssh dependency altogether


Bato.to: Add deep link support for v3x

Checklist:

[x] Updated extVersionCode value in build.gradle for individual extensions
[x] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[x] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[x] Added the isNsfw = true flag in build.gradle when appropriate
[x] Have not changed source names
[x] Have explicitly kept the id if a source's name or language were changed
[x] Have tested the modifications by compiling and running the extension through Android Studio
[x] Have removed web_hi_res_512.png when adding a new extension

I explained this in Discord but let me reiterate it here: Kotlin classes like Intrinsics and StringsKt don't work in URL activities as explained here. So I had to make sure compiled code doesn't use those classes. That's why the code looks weird.


[Discussion] Project Goals

I think we need to explicitly mention the goals of this project. The tradeoffs that are made using this project are definitely worth it I feel.
The tradeoffs that it makes is to use platform native tools for the web context and js context. To achieve this it is only able to offer a subset of features in Electron.
I think even if we just had two APIs child_exec and fs - it would still be totally worth it. It allows the creation of simple apps that are able to display a UI and access CLI and filesystem.

Definitely. I think it would have been nice if @pojala could have made his initial goals and reasoning a little more explicit in the beginning, thankful that he started this nice idea in the first place. At this point I think it would be good to leave the goals a little bit open for discussion. It seem to me like the major goal should be to support Node.js-like desktop apps using the built-in WebView, with minimal additional requirements. Thanks @paramaggarwal for all of your contributions!

Good point. Let's make this thread that discussion. What should be the goals of this project?

Here are the goals I think we should have for this project:

Maintain a minimal subset of the electron APIs
Aim to be an alternative to electron for small to mid sized apps
Embed node in electrino

Yes. I currently go to Electron when I want to make an internal tool/console that needs access to the filesystem and hence cannot work in a browser. For this use case I find it appealing to ship large 70MB binaries.
For situations like these Electrino should be the go-to solution. And then if someone needs even more granular APIs, they could switch to Electron.
I personally actually just desire a light-weight web context with access to the filesystem.
ref: Full Electron API

As I understand it, people are really interested in this project because it's lightweight, which solves one of the biggest problem with Electron right now. The assumption is that many projects don't need everything that electron has, and that it can be stripped down.
However, if you add the NodeJS runtime, that of course adds overhead by itself. Vendoring a NodeJS runtime with every app is not great, although it's smaller than Electron.
Another issue is passing file system paths from the browser window (either through an input field or drag-and-drop). If the app should open user-defined files this is a must.
Then there's building, distribution and updating. Even simple apps should be updated. If this doesn't work smoothly a lot of the benefit is lost.
Before investing in this, I think it's really worth investigating whether Electron, nw.js or some other project can be modularized and stripped down for these cases. I'm sure there's a lot of research made already, and I'm as excited as the next person about having a lightweight alternative, but I'd like to see proof for that there are no alternatives in the existing projects first.

I'm going to start following this project as it looks like there has been some life injected into it. I have an ad-hoc XCode template project with a WebView loaded into it to make these quick apps, which I put together quickly because of the intractable dumpster fire that is Electron.
@betamos

Then there's building, distribution and updating. Even simple apps should be updated. If this doesn't work smoothly a lot of the benefit is lost.

I believe the goal should be for updating to be done with Sparkle and WinSparkle.


Quick access button is showing the full tempalte

Reproduce:

Make sure you have template caee6cb7-06e9-4fca-bad0-e0bc68225283 in your account
Click the quick access button

--> the quick access button shows the body of the template as its title

Fixed in 5.3.1


nixos/wireguard: should use WG_ENDPOINT_RESOLUTION_RETRIES

Issue description
In https://github.com/NixOS/nixpkgs/pull/61971 there was an option introduced that indefinitely tries to restart the wireguard service until all
peer hostnames are resolved. Instead it should use WG_ENDPOINT_RESOLUTION_RETRIES
as introduced by
https://git.zx2c4.com/WireGuard/commit?id=a1a1c1723b6423e43d71cfa52862fad9bbcd265b
instead. This feature will be available in the next snapshot release of wireguard.
cc @sjau @Ma27 @zx2c4

Alright 0.0.20190531 has been released for the purpose of this disaster being fixed. @sjau care to cleanup the mess?

I fail to see what mess/disaster you're refering to.


Separate derivation for haskell tests?

Haskell library tests commonly create cycles (example: QuickCheck's tests depend on test-framework, while test-framework depends on QuickCheck as a library). As a possible solution, we could have a separate derivation just for the tests (and perhaps also for benchmarks), which would allow different dependencies for the tests compared to the library itself. The stackage curator tool works similarly, it builds the tests separatly.
Thoughts?
/cc @peti

+1

How would this work in practice? Right now, tests are run as part of every build, so it's basically impossible to use a package that doesn't pass its own test suite. In cases where this requirement is too strict, we can explicitly disable the tests for individual packages. When we do that, however, we almost always report the issue upstream, too, which has been recognized by several package authors as a great service for the Haskell community.
Specifically, I'm wondering about the following questions:

If tests are separate derivations, when will they'll be run?
How do we run the tests without re-building the entire package?

My main concern here is that some test suites are very slow, so even if I might want to run the tests eventually, I don't want to be blocked on development waiting for them.  I thought that might be implemented by providing a ".checked" attribute on each Haskell derivation, which would work the same as the underlying derivation, but would require passing the test suite (unless doCheck = false) in order to build.  It would need to depend on the .checked versions of all its dependencies as well.  Also, it would be nice if it kept the test suite output around somewhere.
I don't know of a way to do this without still building the test suite along with the normal package.  However, I think that deferring actually running it should be doable.

@peti for the first point, we could invert the relationship and leave the current derivation with tests enabled, but add a special build attribute that will contain the library, but without running any tests. build would only depend on build of dependencies, will the derivation itself will depend on the other packages + it's own build.
As for the second point, that'll be a problem. Even running the tests separately as @ryantrinkle proposes has a problem, since even just running the tests is difficult without cabal support. The only way I see to solve this is to have build produce an out path of the working directory of the cabal build, so that we can still run cabal test. That has it's own problems, however:

More store paths
Increased disk space usage, since all the temporary objects will be in the store too (they can be garbage-collected after builds have completed though)

Perhaps we can find a way to have cabal use an already-installed version of a library to compile and run the tests? If that feature is not yet supported, it would be useful to have, so maybe it can be added. But before this happens, I see not good way to implement this :-(

@ryantrinkle,

My main concern here is that some test suites are very slow, so even if I might want to run the tests eventually, I don't want development to be blocked waiting for them. I thought that might be implemented by providing a ".checked" attribute on each Haskell derivation.

Would the following overrides work for you?
{
  packageOverrides = super: let self = super.pkgs; in {

    haskellPackages = self.haskellPackages.override {
      overrides = self: super: {
        mkDerivation = args: super.mkDerivation (args // { doCheck = false; });
      };
    };

    haskellPackages_checked = super.haskellPackages;

  };
}

@peti That would work for development, although it would mean that I'd need to do a full rebuild when transitioning from development to production, whereas the .checked attribute I was envisioning would simply run all the tests that hadn't been run yet.

@bennofs Perhaps instead of copying the working directory, it can simply re-unpack the sdist before running tests?  I suppose this will break if the package produces things during the build phase that need to be used during test, but I'd be a little surprised if that's very common.

@ryantrinkle That will recompile the whole package to run tests, no?

@bennofs I think tests can be installed along with the package, in which case we can just run them.  The sdist unpacking may not be necessary, but it would cover cases where the tests refer to data files and such.

@ryantrinkle the problem is detecting which of the installed executables are tests. Also, does this work for the detailed test type?

Personally, I don't see any reliable way to build tests now but execute them later. That doesn't mean it can't be done -- it's just that I don't know how to.

@peti I asked around, and I think you're right.  Maybe if that functionality gets added to cabal, we can revisit this.

In that case, should we close this for now?


Added automatic indexing requirement.

Mention that automatic indexing needs to be turned on on Cosmos DB.

@LuisCabrer : Thanks for your contribution! The author, @mgottein, has been notified to review your proposed change.

#sign-off

@LuisCabrer: I'm sorry - only the author of this article, @mgottein, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

I will submit to pr branch instead.


License

Hi! May I ask, what are the licensing terms of this library? I would like to potentially use it and maybe contribute.

Hi,
like the rest of audiocloud, it is meant to be MIT licensed. This project is not currently actively used in the version of audiocloud we are building right now, but that may change again as we progress to 1.0 release. PRs are more than welcome, though there may be some lag to actually test anything.

Thanks a lot! That clear is up.


router: dedupe domains across virtual hosts

Currently we only validate virtual host names to be unique per route. However, domains also need to be unique across all virtual hosts of a route otherwise Envoy will reject the configuration with error
[Envoy (Epoch 0)] [2020-06-04 01:47:01.186][76][warning][config] [external/envoy/source/common/config/grpc_mux_subscription_impl.cc:82] gRPC config for type.googleapis.com/envoy.api.v2.RouteConfiguration rejected: Only unique values for domains are permitted. Duplicate entry of domain test-service.service-mesh

Refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto.html?highlight=http route components#config-route-v3-virtualhost
Added a test case that shows the behaviour.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ X] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
8115e30feba41f60825f642e538e02f91b756bd7
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn can you PTAL? For http_proxy protocol from sidecar as I mentioned here https://github.com/istio/istio/pull/24455#discussion_r435986687 for non 80 ports it is only generating virtual hosts and domain with port.  The behaviour has not changed with this PR

This was not fixed in 1.6 for some reason.
/cherry-pick release-1.6

This was not fixed in 1.6 for some reason.
/cherry-pick release-1.6

@mandarjog: new pull request created: #29939

In response to this:

This was not fixed in 1.6 for some reason.
/cherry-pick release-1.6

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@mandarjog: new pull request created: #29939

In response to this:

This was not fixed in 1.6 for some reason.
/cherry-pick release-1.6

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Don't notify if cmd_spawn succeeds?

I'd rather not have a notification if cmd_spawn succeeds. (I won't mind a notification on failure tough.)
Maybe it could be left to the user to implement such a logic? Using the concepts mentioned in #11, it could be written as:
menu_item  :main  :Hello  :cmd_spawn  :echo Hello
and_then                  :dbg_toast  :The previous action was successful.

If I implement the concepts from #11 (which, in foresight, I should have done at the beginning, and am likely to do after v0.0.2), I'll probably rework it to work like this. The biggest thing is I probably don't want to go down the route of handling output values as well as success/failure, as I feel that is more the job of a shell script (and possible cmd_output). Otherwise, I'll add a quiet option to cmd_spawn (menu_item:main:Hello:cmd_spawn:quiet:echo Hello).

If you were to add an option, maybe it would be better to keep cmd_spawn's argument at the same position:
menu_item:main:Hello:cmd_spawn:echo Hello:quiet

Maybe quiet should be the default? In which case, users wanting the developer feedback regarding the PID of the spawned process would add a verbose option?

I think the final option needs to remain the command. I seem to recall @geek1011 saying it was designed that way so the string could be passed directly to sh without further processing.
And that makes sense, because o can already think of a command that would cause all sorts of issues if one tried to parse an option at the end. (eg file syncing programs)

Good point. I think there might also be a problem with options: if I have a command named verbose:echo, for example, cmd_spawn:verbose:echo Hello would be ambiguous… And that's probably why cmd_output's timeout isn't optional.

Yeah. Although making the timeout optional should be easy enough of one wanted to, by allowing -1, which according to the qprocess docs would disable the timeout. Whether @geek1011 wants to allow this is another matter.

I would personally favor the following approach to solving this problem:
diff --git a/src/action_cc.cc b/src/action_cc.cc
index 43a179a..6be5729 100644
--- a/src/action_cc.cc
+++ b/src/action_cc.cc
@@ -297,7 +297,8 @@ NM_ACTION_(cmd_spawn) {
         (qint64*)(&pid)
     );
     NM_ASSERT(ok, "could not start process");
-    NM_RETURN_OK(nm_action_result_toast("Successfully started process with PID %lu.", (unsigned long)(pid)));
+    NM_LOG("successfully started process with PID %lu", (unsigned long)(pid));
+    NM_RETURN_OK(nm_action_result_silent());
     #undef NM_ERR_RET
 }

The other option is I implement the config:<key>:<value> type, which I'm going to do at some point anyways. It would set lesser-used options of the preceding menu item.
About quiet, I don't think there's any command which one would use called quiet:, so in this case, I'd probably add it directly and make it optional.
@baskerville: I understand your approach, but I've learned from previous experience how much it confuses users when nothing happens (e.g. I answer the same emails almost every day about the fact that kepubify, kobopatch, and dictutil are CLI apps). For this reason, I want to ensure every common command does something visible, at least by default.

The other option would be to add another config entry which suppresses the output from the previous action.


Create a model input data class which holds all the relevant data for the model.

This is the class users who want to run specific scenarios would instantiate with their simulation details. As such it should be clearly documented.

Creating such 'model input' was not entirely possible due to the entanglement of the Coral model properties. However, most of the classes have been reworked and they are now easier to maintain, extend, use and test.