[Bug]: Since V2 the EUFY Floodlight Cam 2 2K WiFi Outdoor Security Camera causes Homebridge to crash

What happened?
Since V2 the EUFY Floodlight Cam 2 2K WiFi Outdoor Security Camera causes Homebridge to crash when its enabled.
Device Type
Floodlight (Supported)
Plugin Version
v2.0.x (Supported)
HomeBridge Version
v1.4.x (Supported)
NodeJS Version
v14 (Supported)
Operating System
Raspbian 10+ (Supported)
Relevant log output
[6/11/2022, 9:56:44 PM] [EufySecurity-2.0.0] ERROR: Local livestream didn't start in time. Abort livestream request.
[6/11/2022, 9:56:44 PM] [EufySecurity-2.0.0] ERROR: Garden camera Unable to start the livestream: no started livestream found
[6/11/2022, 9:56:44 PM] [EufySecurity-2.0.0] INFO:  Garden camera Starting video stream: 640x480, 30 fps, 299 kbps  (AAC-eld)
[11/06/2022, 21:56:44] TypeError: ffmpegInput is not iterable
    at StreamingDelegate.startStream (/usr/local/lib/node_modules/homebridge-eufy-security/src/accessories/streamingDelegate.ts:676:20)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[11/06/2022, 21:56:44] Got SIGTERM, shutting down Homebridge...
[11/06/2022, 21:56:44] [Harmony] INFO - shutdown
[6/11/2022, 9:56:44 PM] [EufySecurity-2.0.0] WARN:  Push Closed!
[6/11/2022, 9:56:44 PM] [EufySecurity-2.0.0] INFO:  Finished shutdown!
[11/06/2022, 21:56:48] [homebridge-eufy-security] This plugin slows down Homebridge. The write handler for the characteristic 'Selected RTP Stream Configuration' on the accessory 'Garden camera 2726' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
[11/06/2022, 21:56:48] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1657:16)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[11/06/2022, 21:56:49] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[11/06/2022, 21:56:54] [HB Supervisor] Restarting Homebridge...
[11/06/2022, 21:56:54] [HB Supervisor] Starting Homebridge with extra flags: -I -D -K
[11/06/2022, 21:56:54] [HB Supervisor] Started Homebridge v1.4.1 with PID: 29329
[11/06/2022, 21:56:55] Loaded config.json with 10 accessories and 13 platforms.

Hey @gdotp01
could you try the latest beta please? Does this resolve your issue?
Furthermore if not: please provide your json config and a debug log output with a few messages before the error.

Im experiencing the same issue.
        {
            "platform": "EufySecurity",
            "username": "REDACTED",
            "password": "REDACTED",
            "country": "US",
            "ignoreStations": [
                "IGNORE1"
            ],
            "ignoreDevices": [
                "IGNORE1"
            ],
            "cameras": [
                {
                    "serialNumber": "Txxxxx",
                    "enableCamera": true,
                    "enableButton": true,
                    "motionButton": true,
                    "rtsp": true,
                    "unbridge": true,
                    "forcerefreshsnap": false,
                    "useCachedLocalLivestream": false,
                    "useEnhancedSnapshotBehaviour": false,
                    "snapshotHandlingMethod": 3,
                    "immediateRingNotificationWithoutSnapshot": false,
                    "delayCameraSnapshot": false,
                    "videoConfig": {
                        "audio": true
                    }
                }
            ],
            "_bridge": {
                "username": "xxxx",
                "port": 42438
            }
        }

[6/15/2022, 4:23:17 PM] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1642:14)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[6/15/2022, 4:23:23 PM] [homebridge-eufy-security] This plugin slows down Homebridge. The write handler for the characteristic 'Selected RTP Stream Configuration' on the accessory 'Walkway 6CDA' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
[6/15/2022, 4:23:23 PM] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1657:16)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[6/15/2022, 4:23:24 PM] [EufySecurity-2.0.1-beta.17] ERROR: Walkway Local livestream didn't start in time. Abort livestream request.
[6/15/2022, 4:23:24 PM] [EufySecurity-2.0.1-beta.17] ERROR: Walkway Unable to start the livestream: no started livestream found
[6/15/2022, 4:23:24 PM] [EufySecurity-2.0.1-beta.17] INFO:  Walkway Starting video stream: 1280x720, 30 fps, 299 kbps  (AAC-eld)
TypeError: Cannot read properties of undefined (reading 'url')
    at StreamingDelegate.startStream (/homebridge/node_modules/.pnpm/homebridge-eufy-security@2.0.1-beta.17/node_modules/homebridge-eufy-security/src/accessories/streamingDelegate.ts:772:61)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[6/15/2022, 4:23:24 PM] [homebridge-eufy-security] Child bridge process ended
[6/15/2022, 4:23:24 PM] [homebridge-eufy-security] Process Ended. Code: 1, Signal: null```

Hey @jangeja94
Thx for participating and for your feedback.
Can you enable debug log output? It's in the advanced settings in the config UI.
And please include at least the messages from the stream start request. Thank you.

Hey @thieren I enabled it. I'm also still seeing this log when the eufy-security plugin restarts, which is odd because the camera is already added in homekit.
[6/15/2022, 7:14:36 PM] Please add [Walkway 6CDA] manually in Home app. Setup Code: 184-44-208

Here are the debug logs with rtsp disabled.
6/15/2022, 7:16:35 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway SET DeviceEnabled: true
[6/15/2022, 7:16:35 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway SET HomeKitCameraActive: 1
[6/15/2022, 7:16:35 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway Property Changes: enabled true
[6/15/2022, 7:16:44 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceMotionDetected: false
[6/15/2022, 7:16:44 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceEnabled: true
[6/15/2022, 7:16:44 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceMotionDetection: undefined
[6/15/2022, 7:16:44 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceLight: false
[6/15/2022, 7:16:44 PM] [homebridge-eufy-security] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info.
[6/15/2022, 7:16:44 PM] [homebridge-eufy-security] Error:
    at On.Characteristic.characteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Characteristic.ts:2142:105)
    at On.Characteristic.validateUserInput (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Characteristic.ts:2014:12)
    at On.<anonymous> (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Characteristic.ts:1534:24)
    at step (/homebridge/node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.js:144:27)
    at Object.next (/homebridge/node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.js:125:57)
    at fulfilled (/homebridge/node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.js:115:62)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[6/15/2022, 7:16:44 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET StationCurrentMode: 0
[6/15/2022, 7:16:44 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET StationCurrentMode: 0
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET EventSnapshotsActive: 0
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET HomeKitCameraActive: 0
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceEnabled: true
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceStatusLed: true
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceMotionDetected: false
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceEnabled: true
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceMotionDetection: undefined
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway GET DeviceLight: false
[6/15/2022, 7:16:48 PM] [homebridge-eufy-security] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://homebridge.io/w/JtMGR for more info.
[6/15/2022, 7:16:48 PM] [homebridge-eufy-security] Error:
    at On.Characteristic.characteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Characteristic.ts:2142:105)
    at On.Characteristic.validateUserInput (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Characteristic.ts:2014:12)
    at On.<anonymous> (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Characteristic.ts:1534:24)
    at step (/homebridge/node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.js:144:27)
    at Object.next (/homebridge/node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.js:125:57)
    at fulfilled (/homebridge/node_modules/.pnpm/tslib@2.4.0/node_modules/tslib/tslib.js:115:62)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway RTSP rtspStream:false
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway Looks like not compatible with RTSP
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway New instance requests livestream. There were 0 instance(s) using the livestream until now.
[6/15/2022, 7:16:48 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway Start new station livestream (P2P Session)...
[6/15/2022, 7:16:51 PM] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1642:14)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[6/15/2022, 7:16:55 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway Receive Apple HK Stop request{"sessionID":"19f691b7-7548-4bdd-ab43-1ac25a2eac00","type":"stop"}
[6/15/2022, 7:16:55 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Stopping session with id: 19f691b7-7548-4bdd-ab43-1ac25a2eac00
[6/15/2022, 7:16:55 PM] [EufySecurity-2.0.1-beta.17] DEBUG: No session to stop.
[6/15/2022, 7:16:57 PM] [homebridge-eufy-security] This plugin slows down Homebridge. The write handler for the characteristic 'Selected RTP Stream Configuration' on the accessory 'Walkway 6CDA' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
[6/15/2022, 7:16:57 PM] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1657:16)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[6/15/2022, 7:16:58 PM] [EufySecurity-2.0.1-beta.17] ERROR: Walkway Local livestream didn't start in time. Abort livestream request.
[6/15/2022, 7:16:58 PM] [EufySecurity-2.0.1-beta.17] ERROR: Walkway Unable to start the livestream: no started livestream found
[6/15/2022, 7:16:58 PM] [EufySecurity-2.0.1-beta.17] DEBUG: Walkway VIDEOCONFIG: {"audio":true,"vcodec":"libx264","acodec":"libfdk_aac","encoderOptions":"-preset ultrafast -tune zerolatency","packetSize":1128,"forceMax":false}
[6/15/2022, 7:16:58 PM] [EufySecurity-2.0.1-beta.17] INFO:  Walkway Starting video stream: 1280x720, 30 fps, 299 kbps  (AAC-eld)
TypeError: Cannot read properties of undefined (reading 'url')
    at StreamingDelegate.startStream (/homebridge/node_modules/.pnpm/homebridge-eufy-security@2.0.1-beta.17/node_modules/homebridge-eufy-security/src/accessories/streamingDelegate.ts:772:61)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

Hmm Shouldnt
these lines be using the rtsp property as thats whats in the CameraConfig?

Hmm Shouldnt the camera config use the rtspStream property rather than rtsp ?
these lines be using the rtsp property as thats whats in the CameraConfig?
Havent read too much into the source code so I probably dont know what im talking about :)

Yeah. I too am not entirely satisfied with the way the rtsp setting is working right now. But internally it makes sense: you'll have to look at the whole method
First it's looked at if the device has rtsp capabilities at all. After that if the user has enabled it in the plugin. Then if it is enabled in the eufy app and finally if the plugin can get the rtsp url.
All these have to be fulfilled so that rtsp can work. But as you were right noticing the way it is done now the user thinks rtsp will be used when he just sets it to enabled in the plugin config.
I think that will be handled differently in the future.
As for your case: the rtsp setting does nothing for you, since the plugin determines that the device doesn't have the capabilities. You can see that this property is not included here (I believe the T8424 model is correct here)
If that is true, or if it is an error I can't say since I don't own that device.
However since this can't be used the plugin tries to fallback to the standard local livestream, which unfortunately also fails.
Why this is remains to be investigated. I'll come back to you on this one.

So after investigating a little further, here's what I found:

in earlier versions of this plugin a so called cloud livestream was used. For me this is a rtmp stream which is not the same but (in my understanding and for this use case) pretty similar to the rtsp stream.
The main differences seems to be, that the cloud livestream is tunnelled through the eufy cloud and the rtsp stream is processed locally by the eufy station/device.

I'll implement it so that the rtmp/cloud stream will be used as fallback, if rtsp is not supported by the device.
As for the fail on p2p local live-streaming:
If it's possible for you I'd recommend you try a tool of mine here with this you are able to manually start/stop a p2p stream and also a cloud stream. You can see in the logs if this succeeded.
If you could sent me the log from the tool (main menu choice 5) and the log of the underlying eufy-security-client (main menu choice 6) after you've started a p2p stream, I could try to figure out where the error is caused.
If you have any questions regarding this I'd recommend you write to me on discord or open an issue at the page of the tool (since this is out-of-scope of this plugin).

Tried that tool and selected walkway Light and its just hanging
Start p2p livestream on Walkway...

Yeah. Not much documentation. Just hit enter and it will go back to the devices menu.
The stream will send data in the background. There will no window open up with the stream itself or something.

Did some research today and tried implementing the cloud streaming as fallback option. Unfortunately this stream option seems to be really unreliable. I got at best a 50 percent chance to start the stream. Guess there was a reason to ditch this method from the plugin in the first place.
I'd like to concentrate on why the p2p local stream is not working for you. So if you could try again with the tool, this would help (added some short instructions on the readme page).

Heres the relevant logs for the camera when I tried to initiate p2p. I see multiple station connects/disconnects for the other 2 cameras that I have in my account without me even initiating the p2p connections via the cli, so im not sure how those are getting in there. I filtered these out by grepping for the serial of the camera in question (flood light) I also redacted some info. Plopped the hex codes in an asci converter with no luck on those hex messages. Not really sure what this all means.
2022-06-16T19:52:16.143Z - DEBUG: Stations - element: {"station_id":1108659956,"station_sn":"T8420T6021280472","station_name":"Walkway","station_model":"T8420X","time_zone":"PST8PDT,M3.2.0,M11.1.0|1.1139","wifi_ssid":"","ip_addr":"<IP_ADDRESS>","wifi_mac":"8C8580C53EC8","main_sw_version":"<IP_ADDRESS>","main_hw_version":"P1","sec_sw_version":"<IP_ADDRESS>","sec_hw_version":"P1","volume":"Anker_Security","bt_mac":"8C8580C74005","device_type":3,"event_num":0,"sku_number":"","lot_number":"","cpuid":"","create_time":1632308601,"update_time":1655345518,"status":1,"station_status":0,"status_change_time":0,"p2p_did":"USPRAMA-146641-EDDCY","push_did":"USPRAMA-146641-EDDCY","p2p_license":"AFEYJC","push_license":"","ndt_did":"USPRAMA-146641-EDDCY","ndt_license":"","wakeup_flag":3,"p2p_conn":"xxxx","app_conn":"xxx","wipn_enc_dec_key":"","wipn_ndt_aes128key":"","query_server_did":"","prefix":"USPRAMA","wakeup_key":"xxxxx","member":{"family_id":0,"station_sn":"T8420T6021280472","admin_user_id":"xxxx","member_user_id":"xxxx","short_user_id":"0000","member_type":2,"permissions":0,"member_nick":"","action_user_id":"","fence_state":0,"extra":"","member_avatar":"","house_id":"","create_time":1655148285,"update_time":0,"status":0,"email":"","nick_name":"","avatar":"","action_user_email":"xxxx","action_user_name":"xxxx"},"params":[{"param_id":0,"station_sn":"T8420T6021280472","param_type":1224,"param_value":"0","create_time":1655148291,"update_time":1655345480,"status":1},{"param_id":1195096067,"station_sn":"T8420T6021280472","param_type":1135,"param_value":"0","create_time":1655148286,"update_time":1655345480,"status":1},{"param_id":1195096070,"station_sn":"T8420T6021280472","param_type":1253,"param_value":"0","create_time":1655148286,"update_time":1655148286,"status":1},{"param_id":0,"station_sn":"T8420T6021280472","param_type":1140,"param_value":"1","create_time":1655345490,"update_time":0,"status":1}],"devices":[{"device_id":1113987851,"is_init_complete":false,"device_sn":"T8420T6021280472","device_name":"Walkway","device_model":"T8420X","time_zone":"PST8PDT,M3.2.0,M11.1.0","device_type":3,"device_channel":0,"station_sn":"T8420T6021280472","schedule":"","schedulex":"","wifi_mac":"xxxx","main_sw_version":"<IP_ADDRESS>","main_hw_version":"P1","sec_sw_version":"<IP_ADDRESS>","sec_hw_version":"P1","sector_id":0,"event_num":0,"wifi_ssid":"Hangry","ip_addr":"<IP_ADDRESS>","volume":"Anker_Security","bind_time":1655148285,"bt_mac":"xxxx","local_ip":"","language":"en-US","sku_number":"","lot_number":"","cpuid":"","create_time":1632308601,"update_time":1655345518,"status":1}],"sensor_info":null,"is_init_complete":false,"virtual_version":"","house_id":"xxxx"}
2022-06-16T19:52:17.155Z - DEBUG: Normalized Properties {"stationSN":"T8420T6021280472","properties":{"name":"Walkway","model":"T8420X","serialNumber":"T8420T6021280472","type":3,"hardwareVersion":"P1","softwareVersion":"<IP_ADDRESS>","lanIpAddress":"<IP_ADDRESS>","macAddress":"xxxx","timeFormat":0,"guardMode":0}}
2022-06-16T19:52:17.592Z - DEBUG: Normalized Properties {"deviceSN":"T8420T6021280472","properties":{"motionDetected":false,"personDetected":false,"personName":"","name":"Walkway","model":"T8420X","serialNumber":"T8420T6021280472","type":3,"hardwareVersion":"P1","softwareVersion":"<IP_ADDRESS>","stationSerialNumber":"T8420T6021280472","recordingClipLength":60,"recordingRetriggerInterval":0,"recordingEndClipMotionStops":true,"lightSettingsBrightnessSchedule":100,"microphone":true,"lightSettingsBrightnessManual":100,"autoNightvision":true,"speaker":true,"light":false,"speakerVolume":80,"lightSettingsBrightnessMotion":100,"lightSettingsMotionTriggeredTimer":30,"lightSettingsMotionTriggered":true,"lightSettingsEnable":true,"statusLed":true}}
2022-06-16T19:52:17.596Z - DEBUG: Connecting to station T8420T6021280472... {"p2pConnectionType":"QUICKEST"}
2022-06-16T19:52:17.596Z - DEBUG: Station T8420T6021280472 DSK keys not present or expired, get/renew it {"dskKey":"","dskExpiration":null}
2022-06-16T19:52:17.596Z - DEBUG: Request: {"method":"post","endpoint":"v1/app/equipment/get_dsk_keys","token":"xxxx","data":{"invalid_dsks":{"T8420T6021280472":""},"station_sns":["T8420T6021280472"],"transaction":"1655409137596"}}
2022-06-16T19:52:17.973Z - DEBUG: Response: {"response":{"code":0,"msg":"Succeed.","data":{"enabled":true,"dsk_keys":[{"station_sn":"T8420T6021280472","dsk_key":"xxxxx","expiration":1655410937,"about_to_be_replaced":true}]}}}
2022-06-16T19:52:17.973Z - DEBUG: Station T8420T6021280472 - Response: {"code":0,"msg":"Succeed.","data":{"enabled":true,"dsk_keys":[{"station_sn":"T8420T6021280472","dsk_key":"xxxxx","expiration":1655410937,"about_to_be_replaced":true}]}}
2022-06-16T19:52:18.009Z - DEBUG: Station T8420T6021280472 - LOOKUP_RESP - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"responseCode":253}}
2022-06-16T19:52:18.010Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR2 - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":10000,"data":"12faed27"}}
2022-06-16T19:52:18.010Z - DEBUG: Station T8420T6021280472 - CHECK_CAM2 - Connecting to host <IP_ADDRESS> on port 10000...
2022-06-16T19:52:18.011Z - DEBUG: Station T8420T6021280472 - LOOKUP_RESP - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"responseCode":0}}
2022-06-16T19:52:18.011Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":11941}}
2022-06-16T19:52:18.011Z - DEBUG: Station T8420T6021280472 - QUICKEST - Try to connect to <IP_ADDRESS>:11941...
2022-06-16T19:52:18.012Z - DEBUG: Station T8420T6021280472 - CHECK_CAM - Connecting to host <IP_ADDRESS> on port 11941...
2022-06-16T19:52:18.012Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":11941}}
2022-06-16T19:52:18.012Z - DEBUG: Station T8420T6021280472 - QUICKEST - Try to connect to <IP_ADDRESS>:11941...
2022-06-16T19:52:18.012Z - DEBUG: Station T8420T6021280472 - CHECK_CAM - Connecting to host <IP_ADDRESS> on port 11941...
2022-06-16T19:52:18.013Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"message":"f16900840800000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c0000000000000000","length":136}}
2022-06-16T19:52:18.019Z - DEBUG: Station T8420T6021280472 - CAM_ID - Connected to station T8420T6021280472 on host <IP_ADDRESS> port 11941
2022-06-16T19:52:18.019Z - INFO: Connected to station T8420T6021280472 on host <IP_ADDRESS> and port 11941
2022-06-16T19:52:18.019Z - DEBUG: Sending get camera infos command to station T8420T6021280472
2022-06-16T19:52:18.019Z - DEBUG: Sending p2p command... {"station":"T8420T6021280472","sequence":0,"commandType":1103,"channel":255,"retries":0,"messageStatesSize":1}
2022-06-16T19:52:18.029Z - DEBUG: Station T8420T6021280472 - CAM_ID - Already connected, ignoring...
2022-06-16T19:52:18.038Z - DEBUG: Station T8420T6021280472 - CAM_ID - Already connected, ignoring...
2022-06-16T19:52:18.054Z - DEBUG: Station T8420T6021280472 - CAM_ID - Already connected, ignoring...
2022-06-16T19:52:18.073Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"message":"f16900840800000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c0000000000000000","length":136}}
2022-06-16T19:52:18.073Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":11941}}
2022-06-16T19:52:18.073Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":11941}}
2022-06-16T19:52:18.073Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"message":"f16900840800000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c000000000000000000021027c82dc42c0000000000000000","length":136}}
2022-06-16T19:52:18.102Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":11941}}
2022-06-16T19:52:18.102Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":11941}}
2022-06-16T19:52:18.142Z - DEBUG: Station T8420T6021280472 - DATA DATA - received from host <IP_ADDRESS>:11941 - Processing sequence 0...
2022-06-16T19:52:18.143Z - DEBUG: Station T8420T6021280472 - Received data {"seqNo":0,"header":{"commandId":1103,"bytesToRead":132,"channel":255,"signCode":0,"type":1},"bytesRead":132,"bytesToRead":132,"firstPartMessage":true,"messageSize":148}
2022-06-16T19:52:18.145Z - DEBUG: Station T8420T6021280472 - Received data {"commandIdName":"CMD_CAMERA_INFO","commandId":1103,"resultCodeName":"ERROR_PPCS_SUCCESSFUL","resultCode":0,"message":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","data":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}
2022-06-16T19:52:18.146Z - DEBUG: Station T8420T6021280472 - Result data for command received {"messageState":{"sequence":0,"commandType":1103,"channel":255,"data":{"type":"Buffer","data":[209,0,0,0,88,90,89,72,79,4,4,0,0,0,1,0,255,0,0,0,255,0,0,0]},"retries":0,"acknowledged":false,"returnCode":-133,"timeout":{"_idleTimeout":-1,"_idlePrev":null,"_idleNext":null,"_idleStart":6625,"_onTimeout":null,"_repeat":null,"_destroyed":true}},"resultCodeName":"ERROR_PPCS_SUCCESSFUL","resultCode":0}
2022-06-16T19:52:18.146Z - DEBUG: Got p2p command response {"station":"T8420T6021280472","commandType":1103,"channel":255,"returnCodeName":"ERROR_PPCS_SUCCESSFUL","returnCode":0}
2022-06-16T19:52:18.149Z - DEBUG: Station T8420T6021280472 - DATA DATA - Received expected sequence (seqNo: 0 queuedData.size: 0)
2022-06-16T19:52:18.150Z - DEBUG: Station T8420T6021280472 - ACK DATA - received from host <IP_ADDRESS>:11941 for sequence 0
2022-06-16T19:52:18.150Z - DEBUG: Station T8420T6021280472 - DATA CONTROL - received from host <IP_ADDRESS>:11941 - Processing sequence 0...
2022-06-16T19:52:18.150Z - DEBUG: Station T8420T6021280472 - Received data {"seqNo":0,"header":{"commandId":1103,"bytesToRead":480,"channel":0,"signCode":0,"type":0},"bytesRead":480,"bytesToRead":480,"firstPartMessage":true,"messageSize":496}
2022-06-16T19:52:18.152Z - DEBUG: Station T8420T6021280472 - Camera info {"cameraInfo":"{\"params\":[{\"dev_type\":0,\"param_type\":1400,\"param_value\":\"0\"},{\"dev_type\":0,\"param_type\":1403,\"param_value\":\"1\"},{\"dev_type\":0,\"param_type\":1408,\"param_value\":\"1\"},{\"dev_type\":0,\"param_type\":1414,\"param_value\":\"0\"},{\"dev_type\":0,\"param_type\":1412,\"param_value\":\"100\"},{\"dev_type\":0,\"param_type\":1401,\"param_value\":\"100\"},{\"dev_type\":0,\"param_type\":1413,\"param_value\":\"100\"},{\"dev_type\":0,\"param_type\":1409,\"param_value\":\"30\"},{\"dev_type\":255,\"param_type\":1151,\"param_value\":\"0\"}]}"}
2022-06-16T19:52:18.153Z - DEBUG: Got camera infos {"station":"T8420T6021280472","cameraInfo":{"params":[{"dev_type":0,"param_type":1400,"param_value":"0"},{"dev_type":0,"param_type":1403,"param_value":"1"},{"dev_type":0,"param_type":1408,"param_value":"1"},{"dev_type":0,"param_type":1414,"param_value":"0"},{"dev_type":0,"param_type":1412,"param_value":"100"},{"dev_type":0,"param_type":1401,"param_value":"100"},{"dev_type":0,"param_type":1413,"param_value":"100"},{"dev_type":0,"param_type":1409,"param_value":"30"},{"dev_type":255,"param_type":1151,"param_value":"0"}]}}
2022-06-16T19:52:18.156Z - DEBUG: Station T8420T6021280472 - DATA CONTROL - Received expected sequence (seqNo: 0 queuedData.size: 0)
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":14113}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":14113}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":14113}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":14113}}
2022-06-16T19:52:19.211Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.212Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":14113}}
2022-06-16T19:52:19.212Z - DEBUG: Station T8420T6021280472 - LOOKUP_ADDR - Got response {"remoteAddress":"<IP_ADDRESS>","remotePort":32100,"response":{"ip":"<IP_ADDRESS>","port":14113}}
2022-06-16T19:52:19.212Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.212Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.212Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.212Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.213Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.213Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:19.213Z - DEBUG: Station T8420T6021280472 - received unknown message {"remoteAddress":"<IP_ADDRESS>","remotePort":14113,"response":{"message":"f141001455535052414d410000023cd14544444359000000","length":24}}
2022-06-16T19:52:23.241Z - DEBUG: Stations - element: {"station_id":1108659956,"station_sn":"T8420T6021280472","station_name":"Walkway","station_model":"T8420X","time_zone":"PST8PDT,M3.2.0,M11.1.0|1.1139","wifi_ssid":"","ip_addr":"<IP_ADDRESS>","wifi_mac":"8C8580C53EC8","main_sw_version":"<IP_ADDRESS>","main_hw_version":"P1","sec_sw_version":"<IP_ADDRESS>","sec_hw_version":"P1","volume":"Anker_Security","bt_mac":"xxxx","device_type":3,"event_num":0,"sku_number":"","lot_number":"","cpuid":"","create_time":1632308601,"update_time":1655345518,"status":1,"station_status":0,"status_change_time":0,"p2p_did":"USPRAMA-146641-EDDCY","push_did":"USPRAMA-146641-EDDCY","p2p_license":"AFEYJC","push_license":"","ndt_did":"USPRAMA-146641-EDDCY","ndt_license":"","wakeup_flag":3,"p2p_conn":"xxxx","app_conn":"xxxx","wipn_enc_dec_key":"","wipn_ndt_aes128key":"","query_server_did":"","prefix":"USPRAMA","wakeup_key":"xxxx","member":{"family_id":0,"station_sn":"T8420T6021280472","admin_user_id":"xxx","member_user_id":"xxxx","short_user_id":"0000","member_type":2,"permissions":0,"member_nick":"","action_user_id":"","fence_state":0,"extra":"","member_avatar":"","house_id":"","create_time":1655148285,"update_time":0,"status":0,"email":"","nick_name":"","avatar":"","action_user_email":"xxxxx","action_user_name":"xxxx"},"params":[{"param_id":0,"station_sn":"T8420T6021280472","param_type":1224,"param_value":"0","create_time":1655148291,"update_time":1655345480,"status":1},{"param_id":1195096067,"station_sn":"T8420T6021280472","param_type":1135,"param_value":"0","create_time":1655148286,"update_time":1655345480,"status":1},{"param_id":1195096070,"station_sn":"T8420T6021280472","param_type":1253,"param_value":"0","create_time":1655148286,"update_time":1655148286,"status":1},{"param_id":0,"station_sn":"T8420T6021280472","param_type":1140,"param_value":"1","create_time":1655345490,"update_time":0,"status":1}],"devices":[{"device_id":1113987851,"is_init_complete":false,"device_sn":"T8420T6021280472","device_name":"Walkway","device_model":"T8420X","time_zone":"PST8PDT,M3.2.0,M11.1.0","device_type":3,"device_channel":0,"station_sn":"T8420T6021280472","schedule":"","schedulex":"","wifi_mac":"xxxx","main_sw_version":"<IP_ADDRESS>","main_hw_version":"P1","sec_sw_version":"<IP_ADDRESS>","sec_hw_version":"P1","sector_id":0,"event_num":0,"wifi_ssid":"xxx","ip_addr":"<IP_ADDRESS>","volume":"Anker_Security","bind_time":1655148285,"bt_mac":"xxxx","local_ip":"","language":"en-US","sku_number":"","lot_number":"","cpuid":"","create_time":1632308601,"update_time":1655345518,"status":1}],"sensor_info":null,"is_init_complete":false,"virtual_version":"","house_id":"ID"}
2022-06-16T19:52:23.242Z - DEBUG: Normalized Properties {"stationSN":"T8420T6021280472","properties":{"name":"Walkway","model":"T8420X","serialNumber":"T8420T6021280472","type":3,"hardwareVersion":"P1","softwareVersion":"<IP_ADDRESS>","lanIpAddress":"<IP_ADDRESS>","macAddress":"xxxx","timeFormat":0,"guardMode":0,"currentMode":0}}
2022-06-16T19:52:25.289Z - DEBUG: Sending start livestream command to station T8420T6021280472 for device T8420T6021280472
2022-06-16T19:52:25.289Z - DEBUG: Using CMD_START_REALTIME_MEDIA for station T8420T6021280472 (main_sw_version: <IP_ADDRESS>)
2022-06-16T19:52:25.290Z - DEBUG: Sending p2p command... {"station":"T8420T6021280472","sequence":1,"commandType":1003,"channel":0,"retries":0,"messageStatesSize":1}
2022-06-16T19:52:25.304Z - DEBUG: Station T8420T6021280472 - ACK DATA - received from host <IP_ADDRESS>:11941 for sequence 1
2022-06-16T19:52:25.316Z - DEBUG: Station T8420T6021280472 - DATA DATA - received from host <IP_ADDRESS>:11941 - Processing sequence 1...
2022-06-16T19:52:25.316Z - DEBUG: Station T8420T6021280472 - Received data {"seqNo":1,"header":{"commandId":1003,"bytesToRead":132,"channel":0,"signCode":0,"type":1},"bytesRead":132,"bytesToRead":132,"firstPartMessage":true,"messageSize":148}
2022-06-16T19:52:25.317Z - DEBUG: Station T8420T6021280472 - Received data {"commandIdName":"CMD_START_REALTIME_MEDIA","commandId":1003,"resultCodeName":"ERROR_PPCS_SUCCESSFUL","resultCode":0,"message":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","data":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}
2022-06-16T19:52:25.317Z - DEBUG: Station T8420T6021280472 - Result data for command received {"messageState":{"sequence":1,"commandType":1003,"channel":0,"data":{"type":"Buffer","data":[209,0,0,1,88,90,89,72,235,3,4,1,0,0,1,0,0,0,0,0,0,0,0,0,97,49,97,56,50,54,57,53,49,54,52,99,49,56,99,56,57,97,98,51,56,97,97,50,53,100,56,49,101,54,102,100,50,49,57,98,51,98,98,56,57,102,52,52,50,56,55,55,56,101,97,48,54,54,51,99,55,52,54,52,50,50,53,99,100,53,98,102,50,51,52,98,50,98,102,55,48,55,54,57,49,53,99,53,51,57,99,99,52,101,49,55,48,102,57,99,99,53,49,102,55,54,99,48,55,55,56,48,99,53,49,56,48,57,102,54,53,57,97,97,50,99,48,54,54,51,100,55,97,97,55,55,102,102,49,52,51,53,100,55,101,55,98,98,99,54,48,53,57,99,51,56,57,50,48,98,57,56,53,55,102,51,100,98,57,50,49,102,57,57,49,52,99,56,101,48,99,101,52,53,100,97,98,57,50,57,55,51,54,97,99,97,98,51,57,56,102,48,99,99,97,97,50,50,53,55,49,98,50,51,50,51,97,57,50,48,53,56,98,98,99,57,99,52,57,48,52,50,48,98,99,98,97,53,100,49,57,56,56,54,56,48,54,56,97,55,48,57,56,102,102,53,52,48,99,100]},"retries":0,"acknowledged":true,"returnCode":-133,"timeout":{"_idleTimeout":-1,"_idlePrev":null,"_idleNext":null,"_idleStart":13909,"_onTimeout":null,"_repeat":null,"_destroyed":true}},"resultCodeName":"ERROR_PPCS_SUCCESSFUL","resultCode":0}
2022-06-16T19:52:25.317Z - DEBUG: Got p2p command response {"station":"T8420T6021280472","commandType":1003,"channel":0,"returnCodeName":"ERROR_PPCS_SUCCESSFUL","returnCode":0}
2022-06-16T19:52:25.317Z - DEBUG: Station T8420T6021280472 - DATA DATA - Received expected sequence (seqNo: 1 queuedData.size: 0)
2022-06-16T19:52:30.318Z - INFO: Stopping the station stream for the device T8420T6021280472, because we haven't received any data for 5000 seconds

Just started a P2p on a camera that works with homekit natievly, and with homebridge via this plugin, and I see a different log line
2022-06-16T20:17:58.849Z - DEBUG: Sending start livestream command to station T8400P202031584C for device T8400P202031584C
2022-06-16T20:17:58.850Z - DEBUG: Using CMD_DOORBELL_SET_PAYLOAD for station T8400P202031584C (main_sw_version: <IP_ADDRESS>)

Vs this log line from the floodlight:
2022-06-16T19:52:25.289Z - DEBUG: Using CMD_START_REALTIME_MEDIA for station T8420T6021280472 (main_sw_version: <IP_ADDRESS>)

Hey @jangeja94
Thx for the logs. Your help is much appreciated.

I see multiple station connects/disconnects for the other 2 cameras that I have in my account without me even initiating the p2p connections via the cli, so im not sure how those are getting in there.

So (if you didn't already know) the underlying connection is established through the eufy-security-client library. This will connect to the eufy cloud at startup and refresh every device. Part of this process is to get the device status/information through a local connection (p2p). That should be fairly standard. And I believe that is what your seeing here.
Also this proves that the whole issue is with the eufy-security-client library as opposed to our plugin.
For you this of course doesn't make any difference since your streaming is broke but it narrows down where to look...

Just started a P2p on a camera that works with homekit natievly, and with homebridge via this plugin, and I see a different log line.

That's pretty normal as different eufy devices and software revisions do need different payloads. Why this is exactly I don't know, but if you look at the source code there are a lot of distinction between the devices to get the right commands.
Actually I've even found a comment that hints in the right direction.
I have added some code to test. Just replace eufy-test-client/eufy-security-client/src/http/station.ts with this one. Then run npm run build again in the eufy-security-client directory. After that try again with the tool. Hopefully the logs will now show an established p2p streaming connection.
Alternatively you could install the whole tool again, since I've updated the dependency with a test branch.

Oh nice find ! I was digging through the eufy-security-client yesterday and must have missed that. Ill try this fix.

Unfortunately That didnt resolve the issue. I still see the disconnect line for the floodlight with the latest eufy-test-client.  So now the floodlight is sending that command, but it doesn't appear to be working still.
2022-06-17T13:00:48.183Z - DEBUG: Sending start livestream command to station T8420T6021280472 for device T8420T6021280472
2022-06-17T13:00:48.184Z - DEBUG: Using CMD_START_REALTIME_MEDIA for station T8420T6021280472 (main_sw_version: <IP_ADDRESS>)
2022-06-17T13:00:48.186Z - DEBUG: Sending p2p command... {"station":"T8420T6021280472","sequence":1,"commandType":1003,"channel":0,"retries":0,"messageStatesSize":1}
....
2022-06-17T13:00:53.223Z - INFO: Stopping the station stream for the device T8420T6021280472, because we haven't received any data for 5000 seconds

:disappointed: I should have known the CMD_START_REALTIME_MEDIA was the same log line... Anyway, had to update the git submodule, I pulled the latest commit on this repo, but didnt update the git submodule. It definitely works now. I can see the video being streamed in the logs.  Thanks for tracking that down for me. will you point this plugin to use your forked repo for a hotfix? Or should we try to get it merged in the eufy-security-client repo?
2022-06-17T14:40:44.359Z - DEBUG: Station T8420T6021280472 - CMD_AUDIO_FRAME {"dataSize":203,"metadata":{"audioType":0,"audioSeqNo":0,"audioTimestamp":1655476844089,"audioDataLength":187},"audioDataSize":187}
2022-06-17T14:40:44.360Z - DEBUG: Station T8420T6021280472 - DATA VIDEO - Received expected sequence (seqNo: 42 queuedData.size: 0)
2022-06-17T14:40:44.367Z - DEBUG: Station T8420T6021280472 - DATA VIDEO - received from host <IP_ADDRESS>:22563 - Processing sequence 42...
2022-06-17T14:40:44.367Z - DEBUG: Station T8420T6021280472 - DATA VIDEO - Received already processed sequence (seqNo: 42 queuedData.size: 0)
2022-06-17T14:40:44.435Z - DEBUG: Station T8420T6021280472 - DATA VIDEO - received from host <IP_ADDRESS>:22563 - Processing sequence 43...

We rely on the master version of the eufy-security-client repo. So I'll open a PR and let @bropat check.
But we'll have to wait until the fix is merged into the master until the plugin can use it.

This should be fixed with latest beta.

I installed the latest beta and now I see this error. It continues to exit and restart.
Require stack:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at new EufySecurityPlatform (/homebridge/node_modules/.pnpm/homebridge-eufy-security@2.1.0-beta.10/node_modules/homebridge-eufy-security/src/plugin/platform.ts:126:21)
    at ChildBridgeFork.startBridge (/homebridge/node_modules/.pnpm/homebridge@1.5.0/node_modules/homebridge/src/childBridgeFork.ts:150:42)
[7/19/2022, 7:41:27 AM] [homebridge-eufy-security] Child bridge process ended```

Seems like pnpm is handling the dependencies in another way completely. I will introduce a workaround in the next version but out of curiosity: what installation method for homebridge did you use?

Running homebridge in docker.
I was able to fix it by symlinking the node_modules dir. Unfortunately, I am still getting the orginal issue where its crashing the bridge.
[7/19/2022, 9:06:26 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Walkway RTSP rtspStream:false
[7/19/2022, 9:06:26 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Walkway Looks like not compatible with RTSP
[7/19/2022, 9:06:26 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Walkway New instance requests livestream. There were 0 instance(s) using the livestream until now.
[7/19/2022, 9:06:26 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Walkway Start new station livestream (P2P Session)...
[7/19/2022, 9:06:29 AM] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1642:14)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[7/19/2022, 9:06:35 AM] [homebridge-eufy-security] This plugin slows down Homebridge. The write handler for the characteristic 'Selected RTP Stream Configuration' on the accessory 'Walkway 6CDA' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
[7/19/2022, 9:06:35 AM] [homebridge-eufy-security] Error:
    at Accessory.sendCharacteristicWarning (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1947:14)
    at Timeout._onTimeout (/homebridge/node_modules/.pnpm/hap-nodejs@0.10.2/node_modules/hap-nodejs/src/lib/Accessory.ts:1657:16)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
[7/19/2022, 9:06:35 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Walkway Receive Apple HK Stop request{"sessionID":"ca2657d7-7251-48fa-8e22-1e97e94fb117","type":"stop"}
[7/19/2022, 9:06:35 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Stopping session with id: ca2657d7-7251-48fa-8e22-1e97e94fb117
[7/19/2022, 9:06:35 AM] [EufySecurity-2.1.0-beta.10] DEBUG: No session to stop.
[7/19/2022, 9:06:36 AM] [EufySecurity-2.1.0-beta.10] ERROR: Walkway Local livestream didn't start in time. Abort livestream request.
[7/19/2022, 9:06:36 AM] [EufySecurity-2.1.0-beta.10] ERROR: Walkway Unable to start the livestream: no started livestream found
[7/19/2022, 9:06:36 AM] [EufySecurity-2.1.0-beta.10] DEBUG: Walkway VIDEOCONFIG: {"audio":false,"vcodec":"libx264","acodec":"libfdk_aac","encoderOptions":"-preset ultrafast -tune zerolatency","packetSize":1128,"forceMax":false}
[7/19/2022, 9:06:36 AM] [EufySecurity-2.1.0-beta.10] INFO:  Walkway Starting video stream: 1280x720, 30 fps, 299 kbps
TypeError: Cannot read properties of undefined (reading 'url')
    at StreamingDelegate.startStream (/homebridge/node_modules/.pnpm/homebridge-eufy-security@2.1.0-beta.10/node_modules/homebridge-eufy-security/src/plugin/accessories/streamingDelegate.ts:780:51)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[7/19/2022, 9:06:36 AM] [homebridge-eufy-security] Child bridge process ended
[7/19/2022, 9:06:36 AM] [homebridge-eufy-security] Process Ended. Code: 1, Signal: null

Possible relevant config:
Walkway config is: {
  serialNumber: 'T8420xxxxxx',
  unbridge: true,
  talkback: false,
  videoConfig: { audio: false },
  enableCamera: 'true',
  name: 'Walkway',
  enableButton: true,
  motionButton: true,
  rtsp: false,
  forcerefreshsnap: false,
  useCachedLocalLivestream: false,
  immediateRingNotificationWithoutSnapshot: false,
  useEnhancedSnapshotBehaviour: true,
  delayCameraSnapshot: false,
  snapshotHandlingMethod: 3
}

Can you send me your log-lib.log? should be somewhere under /homebridge/eufysecurity/ (the exact storage path should now be written to the log at startup)

Is fixed with release of 2.1.0


Add KIS.netkan

Last two releases of Kerbal Inventory System has been released on github, so I took the liberty creating this.

Because we'll be using a vref a hardcoded ksp_version is not necessary.

Updated :-)

Looks good. Merging with my thanks.


Updating to ionic 2.1.18 failed

From @adirzoari on December 22, 2016 21:37
Ionic version:2
I'm submitting a bug report & support request.
I'm trying to update ionic 2 version by these commands
npm uninstall cordova ionic
npm install -g cordova ionic
i get these error
C:\Users\adirz\myapps\starter-super>npm install -g cordova ionic npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead C:\Users\adirz\AppData\Roaming\npm --<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\ionic\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN In<EMAIL_ADDRESS>replacing bundled version of cross-spawn with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of mime-types with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of semver with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of form-data with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of request with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of ionic-app-lib with<EMAIL_ADDRESS>npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Users\adirz\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "install" "-g" "cordova" "ionic"
npm ERR! node v6.9.1
npm ERR! npm  v4.0.2
npm ERR! path C:\Users\adirz\AppData\Roaming\npm\node_modules.staging\ansi-f8e54430
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename 'C:\Users\adirz\AppData\Roaming\npm\node_modules.staging\ansi-f8e54430' -> 'C:\Users\adirz\AppData\Roaming\npm\node_modules\ionic\node_mod
ules\cordova-lib\node_modules\ansi'
npm ERR! enoent ENOENT: no such file or directory, rename 'C:\Users\adirz\AppData\Roaming\npm\node_modules.staging\ansi-f8e54430' -> 'C:\Users\adirz\AppData\Roaming\npm\node_modules\ionic\node_mod
ules\cordova-lib\node_modules\ansi'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\adirz\myapps\אפליקציות טובות להשתמש\starter-super\npm-debug.log
C:\Users\adirz\myapps\starter-super>ionic -v
'ionic' is not recognized as an internal or external command,
operable program or batch file.
00
Update NowLaterRelease Notes
Info`
In addition it says ionic is not recognized
'ionic' is not recognized as an internal or external command,
operable program or batch file.
Copied from original issue: driftyco/ionic#9766

Same Problem here, cause was npm version 3.10.5 .
Updating npm to latest 4.x fixed it

npm is now 4.0.5

I updated to npm 4.0.5
But still not working

npm install -g npm@latest before npm install -g ionic@latest worked for me.

I'm having this problem too.  I have npm version 4.0.5
From my terminal:
richardshergold$ sudo npm install -g ionic@latest
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead
npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead
/usr/local/lib
└── (empty)
npm WARN In<EMAIL_ADDRESS>replacing bundled version of cross-spawn with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of semver with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of mime-types with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of form-data with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of request with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of ionic-app-lib with<EMAIL_ADDRESS>npm ERR! Darwin 16.3.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "ionic@latest"
npm ERR! node v7.2.1
npm ERR! npm  v4.0.5
npm ERR! path /usr/local/lib/node_modules/.staging/ansi-392b32ed
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/usr/local/lib/node_modules/.staging/ansi-392b32ed' -> '/usr/local/lib/node_modules/ionic/node_modules/cordova-lib/node_modules/ansi'
npm ERR! enoent ENOENT: no such file or directory, rename '/usr/local/lib/node_modules/.staging/ansi-392b32ed' -> '/usr/local/lib/node_modules/ionic/node_modules/cordova-lib/node_modules/ansi'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/richardshergold/Ionic Projects/npm-debug.log
in debug.log I have:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'info' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose stack Error: Invalid package.json
4 verbose stack     at /usr/local/lib/node_modules/npm/lib/view.js:84:30
4 verbose stack     at ReadFileContext. (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:90:21)
4 verbose stack     at ReadFileContext.callback (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16)
4 verbose stack     at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:335:13)
5 verbose cwd /Users/richardshergold/Ionic Projects
6 error Darwin 16.3.0
7 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "info"
8 error node v7.2.1
9 error npm  v4.0.5
10 error Invalid package.json
11 error If you need help, you may report this error at:
11 error     https://github.com/npm/npm/issues
12 verbose exit [ 1, true ]

Solved it.  I had to uninstall cordova as wel as ionic.  The install worked find after that.

I have the same problem. I uninstall ionic and now i can install the new version.

@richardshergold  i'm really confusing. it's shows me different npm version in different folders and not in each folder the ionic works
see here

C:\Users\adirz>npm -v
4.0.5
C:\Users\adirz>ionic -v
2.1.18
C:\Users\adirz>cd myapps
C:\Users\adirz\myapps>cd haversami
C:\Users\adirz\myapps\HaverSami>npm -v
3.10.9
C:\Users\adirz\myapps\HaverSami>ionic -v
'ionic' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\adirz\myapps\HaverSami>

@adirzoari i'm not really an expert on this sort of stuff.  Did you try globally uninstalling ionic and cordova and then re-installing (globally).  It works for me now.

@richardshergold  what commands please?

@adirzoari
This is what I did:
npm uninstall -g cordova
npm uninstall -g ionic
sudo npm install -g cordova ionic

@richardshergold
Thanks for trick
It is working now.
@adirzoari
You must uninstall ionic first
If not worked update node to v 6.9.2

ionic info

Your system information:

Cordova CLI: 6.4.0
Ionic CLI Version: 2.1.18
Ionic App Lib Version: 2.1.9
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.4
Node Version: v7.3.0
Xcode version: Not installed

npm -v
4.0.5

npm uninstall ionic -g
npm uninstall cordova -g
npm cache clean
npm install cordova -g
npm install ionic -g

@richardshergold  thank you it's worked for me!
I uninstalled cordova first then ionic and install all global as you explained..

Thanks work for me

While install  ionic using below command:

npm install ionic -g
below error throws:

npm WARN In<EMAIL_ADDRESS>replacing bundled version of ionic-app-lib with ionic-a
<EMAIL_ADDRESS>npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\io
nic\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32
"})
npm WARN In<EMAIL_ADDRESS>replacing bundled version of cross-spawn with cross-spa
<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of semver with<EMAIL_ADDRESS>npm WARN In<EMAIL_ADDRESS>replacing bundled version of mime-types with mime-types
@2.0.14
npm WARN In<EMAIL_ADDRESS>replacing bundled version of form-data with form-data@0
.2.0
npm WARN In<EMAIL_ADDRESS>replacing bundled version of request with<EMAIL_ADDRESS>0
npm WARN In<EMAIL_ADDRESS>replacing bundled version of ionic-app-lib with ionic-a
<EMAIL_ADDRESS>any body help to resolve this issue
Thanks
Anbu

I have tried all the above help, no luck so far.
I am at my root directory and I ran the commands, but cannot get cordova, ionic installed properly.
I have got the following result when I run "npm info" :

npm ERR! Darwin 15.4.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "info"
npm ERR! node v7.3.0
npm ERR! npm  v3.10.10

npm ERR! Invalid package.json
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     https://github.com/npm/npm/issues
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/*******/npm-debug.log
Can anyone explain me what should be done in order to install cordova, ionic please?
Thanks

Hey I've tried a lot of things but my terminal is still showing me  "ionic: command not found"
can anyone help me?
when I tried to install ionic I got this
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead
npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead
/Users/jose/.npm-packages/bin/ionic -> /Users/jose/.npm-packages/lib/node_modules/ionic/bin/ionic

<EMAIL_ADDRESS>install /Users/jose/.npm-packages/lib/node_modules/ionic/node_modules/fsevents
node-pre-gyp install --fallback-to-build

[fsevents] Success: "/Users/jose/.npm-packages/lib/node_modules/ionic/node_modules/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
Thanks

@josecarvajal8
what is version of node you have ?
update node to v 6.9.2
update npm to latest
after updating
You must uninstall ionic & cardova
try following commands
npm uninstall -g cordova
npm uninstall -g ionic

note even if you see "ionic: command not found" you must run ' npm uninstall -g ionic' it will remove ionic completely
sudo npm install -g cordova ionic


Prevent duplicate rows in /users when filters applied

Trello: https://trello.com/c/i27MQaus
This fixes an issue with duplication of a user in the table on /users (and the corresponding CSV export) when multiple permissions were selected in the filter.
For example if a user had the "GDS editor" and "signon" permission for the "Transition" app and we selected both of those permissions in the filter drop down, this user would appear twice in table.
The solution is to call distinct on the User#with_permission scope, which is in turn called by UsersFilter#users. I've decided to add a test case in both places to avoid a regression in UsersFilter in case it changes in the future.
Note we have to add the unscoped method to SupportedPermission in the User#with_permission scope since SupportedPermission has an order(:name) default_scope and calling distinct on an ordered query is not supported by MySQL:
Mysql2::Error: Expression 1 of ORDER BY clause is not in SELECT list, references column 'signon_test.supported_permissions.name' which is not in SELECT list; this is incompatible with DISTINCT

Thanks @floehopper! I'll clarify that in the commit note before merging.


[5.7] Add $model->loadCount()

Companion to load like with/withCount
Ideas#869

Is this actually giving a performance benefit vs $model->relation()->count()?

Can't give any numbers on performance. My use-case is loading multiple relations, so it depends on how it is built deeper.
$model->loadCount(['some', 'other']);

vs
$model->some()->count();
$model->other()->count();

For me, the main advantage is that the value is stored and can be accessed multiple times.
So it's the short version of this:
$posts->comments_count = $post->comments()->count();

I would prefer something like this go on master branch. Reason being is because model's contain a lot of user defined methods, and if they have defined a method called "loadCount"... this would be a breaking change for them.


ci: drop macOS 11 runners in packager testing

Issue #, if available:
https://github.com/runfinch/infrastructure/issues/649
Description of changes:
macOS 11 is EOL so packaging testing can be dropped to reduce macOS runner costs for CI.
Testing done:
CI is successful

[x] I've reviewed the guidance in CONTRIBUTING.md

License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks. Let revisit your previous change in finch/infrastructure to actually remove allocating the macOS 11 hosts.


Enhancement: Implement Entity\Repository

This PR

[x] implements Application\Entity\Repository
[x] implements a Service\GitHubRepositoryFactory returning an Entity\Repository with values retrieved from configuration
[x] adjusts Controller\ContributorsController and View\Helper\GitHubRepository to rely on that entity, rather than a configuration array

Follows https://github.com/zendframework/modules.zendframework.com/pull/447#discussion_r25689320.

@Ocramius
Implemented the changes as suggested!

:+1:

@Ocramius
Awesome, thank you for reviewing - I'm now going to have a look at @gianarb's PRs!


Register fail

HomeServerConnectionConfig hsConfig = new HomeServerConnectionConfig(Uri.parse("https://matrix.org"));
RegistrationParams params = new RegistrationParams();
params.username = "UserTest003";
params.password = "1234qwer";
new LoginRestClient(hsConfig).register(params, apiCallback);
Returned a matrix error without errorcode and errorinfo,but has a http error 'mReason: Unauthenticated,mStatus: 401'.
'new LoginRestClient(hsConfig).login(...)' is normal.
Why is it?

The problem has been solved by myself.'params' need a parameter 'type' in map ‘auth’.


Refactor sequence and attached classes

This is a major refactoring of Sequence and attached classes.
Changes that have been made include:

Sequence was mainly a container of EIT data. This responsibility has
been moved to EITData.
Subclasses of EITData (previously subclasses of Sequence) for
different vendors are in separate modules.
The responsibility of Frameset has moved to EITDataVariant.
Visualisation tools have been moved to a separate module plotting.
The Vendor class has been moved to it's own module.
merge() methods are now called concatenate().

This is the start of the road for this refactoring. Up to this point,
there is very limited functionality and testing.
What works*:

DraegerEITData.from_path() works.
TimpelEITData.from_path() works.
EITData.from_path(..., vendor="draeger") works.
DraegerEITData.concatenate() works. This includes
VariantCollection.concatenate() and EITVariant.concatenate().
DraegerEITData.check_equivalence() is working.
When DraegerEITData is loaded, you can also have a ContinuousDataCollection returned containing the continuous waveforms contained in the data file (sparse data is yet to be implemented).

*: Untested!
Interface:
a = DraegerEITData.from_path("test_data/a.bin")
b, continuous, sparse = DraegerEITData.from_path("test_data/b.bin", return_non_eit_data=True)
c = a + b
c.variants['raw'].pixel_impedance  # pixel impedance
b['flow'].variants['raw'].values  # flow data from medibus protocol

Slicing
It is useful if a Sequence object and attached objects can be sliced in two ways:

by time
by indices

When time axes don't match
In the refactored design, a Sequence can contain data with different time axes, e.g. EITData from a Sentec device (sample frequency of 50.2 Hz) and ContinuousData from a pressure sensor (sample frequency of 75 Hz). Slicing by index is then not possible, because indices don't point towards the same time points.
sequence = Sequence(
    eit_data=EITData(..., framerate=50.2),
    continuous_data={'pressure': ContinuousData(..., framerate=75)},
    synchronisation_method=...
)
sliced_sequence = sequence[100:200]  # => Exception: no shared time axis

For other cases, a solution could be something like this:
eit_indices = slice(100, 200)
slice_time = eit_data.time[eit_indices]
sliced_sequence = sequence.select_by_time(slice_time)

or, in a single statement:
sliced_sequence = sequence.select_by_time(sequence.eit_data.time[100:200])

Selection by time can be done on all attached objects individually. This would result in all objects being sliced to start on/after eit_data.time[100] and end on/before eit_data.time[199].
This requires that select_by_time() can accept a slice (to allow 'normal' time slicing) and an array/list of time points. If an array/list with time points is passed, only the first and last time point are used, and the rest is ignored.
When time axes do match
When time axes do match 100% (e.g. np.array_equal(eit_data.time, continuous_data['pressure'].time)), index slicing a Sequence is possible. This requires perfect synchronisation and resampling, or all data coming from a single source.
eit_data, waveforms_from_eit_data = DraegerEITData(..., return_waveforms=True)
sequence = Sequence(eit_data=eit_data, continuous_data=waveforms_from_eit_data)
sliced_sequence = sequence[100:200]  # allowed

TODOs
Available

[ ] Write tests for EITData loading
[ ] Write tests for EITData concatenation
[ ] Refactor EITData slicing by index and time

Blocked

[ ] Write tests for EITData slicing by index and time

@DaniBodor I've made a start with refactoring Sequence and attached objects.
I have created a comment at the top with changes compare to the current main. I think we should maintain this somewhat so we know what work has been done.
I will create some issues of tasks that can be done, and some that are blocked by others.
I think we can tackle these issues in parallel. I will assign issues to myself when I'll be working on them.
Can you read my proposal for slicing and comment on it? I think it's quite straightforward, but I want to see whether I'm missing anything. Also, if you have any suggestions of how to check common time axes quickly, that would be helpful.

@wbaccinelli I have made a start with refactoring Sequence and attached classes. I think it's a good idea to take this PR as a basis for loading Sentec data. There are some small changes in how EITData works compared to how Sequence used to work. The class SentecEITData inherits from EITData. It should re-implement (use @override) the classmethod from_path() similarly to DreagerEITData and TimpelEITData. It should then implement a classmethod _from_path() that handles the loading of a single file.
Because this is early work on the refactoring, documentation and tests are limited.
I hope this is clear from the examples that are already there. If not, please let me know and I'll add docs/comments where necessary.

When time axes don't match
In the refactored design, a Sequence can contain data with different time axes, e.g. EITData from a Sentec device (sample frequency of 50.2 Hz) and ContinuousData from a pressure sensor (sample frequency of 75 Hz). Slicing by index is not possible, because indices don't point to the same time points in all attached objects.
sequence = Sequence(
    eit_data=EITData(..., framerate=50.2),
    continuous_data={'pressure': ContinuousData(..., framerate=75)},
    synchronisation_method=...
)
sliced_sequence = sequence[100:200]  # => Exception: no shared time axis

To me the most natural way of slicing any object is by index and it's a bit annoying if something like sliced_sequence = sequence[100:200] does not work. I also think it's confusing if it only doesn't work in specific circumstances, no matter how well we document that.
Given that our data is primarily EIT data and anything else is "attached" to that or secondary data, I would argue that we can index-slice based purely on EIT data and send a warning if time axes don't match. I think in the vast majority of cases, this will be what the user expects to happen if they just give an index. We could add an optional argument to our slicing function, to state which object to base the slicing on for cases where a user does want to slice based on index of another data source.
If we do this, we would still need to find a solution for how to match two data sources with different time axes, which is still a bit tricky. There are two possible solutions that I think would make sense (see below) and, again, we could use an argument to allow a user to choose between "unequal total length" or "incomplete first/last slice" (we need better names):

What do you think?

...
Given that our data is primarily EIT data and anything else is "attached" to that or secondary data, I would argue that we can index-slice based purely on EIT data and send a warning if time axes don't match.
...
What do you think?

I agree.
I would suggest we do the following:

Sequence objects get an attribute primary_slicing_target (better name suggestions are more than welcome) that refers to an EITData or ContinuousData object.
sequence.primary_slicing_target will be set to sequence.eit_data by default if it is available at initialisation.
sequence.primary_slicing_target will be set to the first continuous_data that was added otherwise.
sequence.primary_slicing_target can be changed by the end user.
When merging sequences, the primary slicing target is taken from the first sequence mentioned in the merge method (e.g. with c = a + b, c.primary_slicing_target will equal (the copy of) a.primary_slicing_target).
When slicing, the time axis of the primary slicing target is used to get the start and end times. Datasets that have non-matching time axes are sliced based on the start and end time.

I think this makes the system intuitive by default, but adaptive if someone chooses to a) not load EIT data or b) focus on working with other continuous data instead.

There are two possible solutions that I think would make sense (see below) and, again, we could use an argument to allow a user to choose between "unequal total length" or "incomplete first/last slice" (we'd need better names):

I was thinking the same. In the second case, the blue squares that you cut in half would just disappear entirely:

It's hard for me to think about what the default behaviour should be from a practical standpoint. I think it makes most sense to use the second case. This would result in the correct behaviour when comparing slicing by indices and by time:
t1 = sequence.eit_data.time[100]
t2 = sequence.eit_data.time[200]

shorter_sequence = sequence[100:200]

assert shorter_sequence == sequence.select_by_time(t1, t2)
assert sequence.continuous_data["pressure"].select_by_time(t1, t2) == sequence[100:200].continuous_data["pressure"]

In the second case, the blue squares that you cut in half would just disappear entirely:

I think what you're saying is a third option.
What I meant is that by index there is the same number of blue timepoints between my suggestions, but that the length/interval of the first and last timepoints are different than for all the other timepoints. So they would indeed be "cut in half".

24-11-2023:
We discussed the problem above and agree we should use the unequal total length. This should be documented well.

As per our meeting on 24-11-2023 I have locked pushing to this branch. To merge changes to this branch, you can create a PR.

@DaniBodor With most of the work for this PR done, are you OK with me unprotecting this branch, so we can push directly to it (instead of having to create PRs for every change)?

@DaniBodor With most of the work for this PR done, are you OK with me unprotecting this branch, so we can push directly to it (instead of having to create PRs for every change)?

I was actually thinking to the contrary, to merge this into main soon and start creating new branches off of there (but still protecting it).

[...], to merge this into main soon and start creating new branches off of there (but still protecting it)

Sounds like a great idea! What needs tackling ahead of that merge?

[...], to merge this into main soon and start creating new branches off of there (but still protecting it)

Sounds like a great idea! What needs tackling ahead of that merge?

I don't think anything. I mean, I'm sure the checks won't pass yet, as we haven't fixed all the tests yet, and there are still some linting issues, etc to be taken care of. But that can all be done off of main rather than this.
In my mind, we just kept main alive initially, in case this restructuring would have turned out to not be a good idea. But by now, we are so deeply invested and main is so far behind, that there's no real point in keeping them separate.
Once it's merged, I want to fix the checks that we have and then see if we can make a formal release of the package, which I think is long overdue already.
@wbaccinelli , what's your opinion on this?

@DaniBodor Agreed. There are a few projects at our end starting up. It would be great for them to base their projects on main. Especially because we want to update some of the branches that branch from main for the new structure. It would be great if we can rebase those on main after the merge, finish them, merge them, and then use that in the new projects.


scylla-jmx needs to use the cluster address rather than localhost

ccm version 1545f3e412dec122c4d97044b162de9a53edbdbf
dtest version scylladb/scylla-dtest@1cd840d8c575fdc68723152f85ce0c1bcc085c3c
pull #170 assumes we listen on the cluster host address but it still listens on localhost:(7000 + cluster.id * 100 + node.id)
This change broke a few dtests.  E.g.:
dtest-release/227/testReport/migration_test/TTLWithMigrate/big_table_with_ttls_test:
Error Message
Nodetool command '/jenkins/workspace/scylla-master/dtest-release/scylla/.ccm/repository/3.11.3/bin/nodetool -h <IP_ADDRESS> -p 7142 refresh -- ks cf' failed; exit status: 1; stderr: nodetool: Failed to connect to '<IP_ADDRESS>:7142' - ConnectException: 'Connection refused (Connection refused)'.
Stacktrace
Traceback (most recent call last):
  File "/usr/lib64/python2.7/unittest/case.py", line 367, in run
    testMethod()
  File "/jenkins/workspace/scylla-master/dtest-release/scylla-dtest/migration_test.py", line 937, in big_table_with_ttls_test
    count_query=count_query)
  File "/jenkins/workspace/scylla-master/dtest-release/scylla-dtest/migration_test.py", line 959, in migrate_to_cassandra
    keyspace_names_list=[keyspace_name], table_names=[table_name])
  File "/jenkins/workspace/scylla-master/dtest-release/scylla-dtest/scylla_tools.py", line 1141, in run_migration
    self.migrate_data_to_cassandra(nodes=nodes_list)
  File "/jenkins/workspace/scylla-master/dtest-release/scylla-dtest/scylla_tools.py", line 1115, in migrate_data_to_cassandra
    node.nodetool("refresh -- {} {}".format(ks.replace('"', ''), table.replace('"', '')))
  File "/jenkins/workspace/scylla-master/dtest-release/scylla-ccm/ccmlib/node.py", line 721, in nodetool
    raise NodetoolError(" ".join(args), exit_status, stdout, stderr)
NodetoolError: Nodetool command '/jenkins/workspace/scylla-master/dtest-release/scylla/.ccm/repository/3.11.3/bin/nodetool -h <IP_ADDRESS> -p 7142 refresh -- ks cf' failed; exit status: 1; stderr: nodetool: Failed to connect to '<IP_ADDRESS>:7142' - ConnectException: 'Connection refused (Connection refused)'.

We also need to pass to scylla-jmx com.sun.management.jmxremote.host
I'm not sure if it's used anywhere but jconsole still uses localhost

Sorry I was wrong, the problem is not with this change.
It would still be a good idea to provide the node address to the scylla-jmx instance though.

this might be related to the change
from the look of it this is 3.11.3, i.e. Cassandra that failing
we merged it based on the next-gating, which I guess doesn't touch Cassandra at all.
Lets revert CCM, and try those specific tests to figure this out.

yeah, feel free to revert
however I'd like to know the command to reproduce the failing test:
PRINT_DEBUG=true CASSANDRA_DIR=../scylla/build/release NOSE_PROCESSES=1 nosetests -s -v --process-timeout=1800 migration_test:TTLWithMigrate.big_table_with_ttls_test
?

Reproducing locally, I see this:
2019-08-29 16:48:07.533753 Starting Cassandra cluster version 3.11.3
2019-08-29 16:48:07.541107 Allocated cluster ID 36: /local/home/bhalevy/.dtest/dtest-ymq16D
2019-08-29 16:48:07.633312 Starting a Cassandra cluster of 4 node(s) with options {'hinted_handoff_enabled': False}...
...
2019-08-29 16:48:32.244825 Stopping Cassandra cluster
2019-08-29 16:48:44.319780 Test failed
...
NodetoolError: Nodetool command '/local/home/bhalevy/.ccm/repository/3.11.3/bin/nodetool -h <IP_ADDRESS> -p 7136 refresh -- ks cf' failed; exit status: 1; stderr: nodetool: Failed to connect to '<IP_ADDRESS>:7136' - ConnectException: 'Connection refused (Connection refused)'.

I wonder how Cassandra is listening on the jmx port

Please revert then, I will look at above once I will know how to reproduce above test

I can reproduce now with above, OK, so it seems Bennys analysis is true - cassandra listens only on localhost, not as scylla-jmx that listens on all IPs
So let me address this so I can proceed with nodetool over REST

One of the ideas is to make cassandra behave similar like scylla-jmx, listen on all IPs for this test
https://github.com/scylladb/scylla-dtest/blob/0eb598a15909f7bb8dd9102719bc252269e673c8/scylla_tools.py#L1009

I would look inside ccm code where to put "-Dcom.sun.management.jmxremote.host"
dtest code isn't the one starting jmx

I am not supper happy with opening scylla-jmx to listen on local ip instead
of local host in scylla-ccm (it certainly should not be done by default)

its not the setup we have in deployments for secutrity reasons - you
don't want someone to access jmx and decomission/remove a node

when jmx is enabled to run on non localhost its using security settings.

On Thu, Aug 29, 2019 at 8:35 PM Israel Fruchter<EMAIL_ADDRESS>wrote:

I would look inside ccm code where to put
"-Dcom.sun.management.jmxremote.host"
dtest code isn't the one starting jmx
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/scylladb/scylla-ccm/issues/171?email_source=notifications&email_token=AA2OCCGL26JIKVB2JTDCWYDQHACELA5CNFSM4ISCLPJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5PH5UY#issuecomment-526286547,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2OCCGHXZHNPWEK573Q723QHACELANCNFSM4ISCLPJQ
.

@slivne so in such case I will need to improve ccm that REST port will listen on "localhost" instead on respective local IPs
(since now scylla-jmx listens on localhost IPs, but REST port in scylla is exposed only on local IP, which is why this bug was filed in a first place)

Confirmed with @amnonh.  We need to keep jmx on localhost.

Let's revert 1545f3e412dec122c4d97044b162de9a53edbdbf then.

@tarzanek - I am not sure this will be super easy for you ... we had to work around all he jmx using the same port.
Can you elaborate what is the issue you are trying to solve - I think scylla-jmx is able to cope with finding the api-address in some manner - maybe the correct thing is to copy the code from scylla-jmx @amnonh can you reference the part in the code in scylla-jmx that locates the rest api address.


Configured CefLogFile path overridden to include date

The CefLogFile as configured in "CustomSettings" is overridden to include date, with no way to prevent that behavior.
It makes sense to have the filename be autogenerated for the default name (which it does), but not when explicitly specified.
The below config will actually write to the file logs\my.cef_20210409.log. (yyyyMMdd)
config.CustomSettings = new Dictionary<string, string>()
{
    ["cefLogFile"] = "logs\\my.cef.log",
};

Suggested solution
This should be changed to just take the unchanged value of the setting:
https://github.com/chromelyapps/Chromely/blob/1f95b7d1475cd56bd9a50b1d8df7140e42810e22/src/Chromely/Browser/CefSettingsExtension.cs#L118
The default name is handled here, and should be unaffected by this change:
https://github.com/chromelyapps/Chromely/blob/1f95b7d1475cd56bd9a50b1d8df7140e42810e22/src/Chromely/WindowController.Run.cs#L68

Thank you for your work on this project!

@MichelJansson
So if I understand the suggestion
On line:
https://github.com/chromelyapps/Chromely/blob/1f95b7d1475cd56bd9a50b1d8df7140e42810e22/src/Chromely/Browser/CefSettingsExtension.cs#L118
we should have:
 cefSettings.LogFile = config.CustomSettings["cefLogFile"];

Right?

Thank you for your work on this project!

yw

@mattkol Thanks for looking into this.
I would say that since this is all within a foreach, line 118 would read:
cefSettings.LogFile = setting.Value
and of course, line 116 and 117 is then not needed.

@MichelJansson thanks for pointing this out, I could not remember why it was done this way in first place.

Good stuff @mattkol - Thanks!


Zee5 sy video download bot audio nhi hai sir plz help me

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2022.10.04 (update instructions) or later (specify commit)
[X] I've searched the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
Zee5 sy video download bot audio nhi hai sir plz help me
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

Zee5 sy video download bot audio nhi hai sir plz help me


Added a Russian layout to Wire keyboard

You should also add these key mappings:
Shift+2 = "
Shift+3 = №
Shift+4 = ;
Shift+6 = :
Shift+7 = ?
Shift+\ = /

Thank you! These keys are now present in the code.

Is there more i need to change or add?

You should change local remap = to just remap = https://github.com/wiremod/wire/pull/2007#discussion_r357968616 and add missing mappings I mentioned in the review comment https://github.com/wiremod/wire/pull/2007#pullrequestreview-332253733.

These changes had been made. I hope it's final and i nothing forgot

You forgot to add these:
!
%
*
(
)
_
+

Added.

Why did you close this?

Oh, i'm sorry. I am really new to github and din't new how some things work. I'll reopen it right now.

Looks good to me. I'll leave it for a little bit in case someone has something more to comment


feat(web/applications): add case overview link to start of breadcrumb

Describe your changes

feat(web/applications): add case overview link to start of breadcrumb
test(web/applications): update test snapshots

Issue ticket number and link
APPLICS-694
Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

LGTM - does it need E2E updates?

@francescobrenci-AR I'll just check. I also need to wait for confirmation from Tammy that is should say Project overview rather than the name of the case. Will leave the PR open for now.


feat: added headers parameter to access response headers

Breaking changes

I need to get the value of cookie from the response headers but FetchResult and QueryResult don't have the headers parameter.

Fixes / Enhancements

Added headers parameter in FetchResult and QueryResult.

Codecov Report

Merging #337 into master will increase coverage by 0.17%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #337      +/-   ##
==========================================
+ Coverage   40.53%   40.71%   +0.17%
==========================================
  Files          26       26
  Lines        1009     1012       +3
==========================================
+ Hits          409      412       +3
  Misses        600      600

Impacted Files
Coverage Δ

packages/graphql/lib/src/core/query_result.dart
22.22% <ø> (ø)
:arrow_up:

packages/graphql/lib/src/link/fetch_result.dart
100% <ø> (ø)
:arrow_up:

packages/graphql/lib/src/core/query_manager.dart
41.12% <100%> (+0.55%)
:arrow_up:

packages/graphql/lib/src/link/http/link_http.dart
83.96% <100%> (+0.24%)
:arrow_up:

Continue to review full report at Codecov.

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


Redirects only work if they end in a /

The docs site has a number of redirects that were managed by docusaruus to handle content migrations we've made over time. These were recently migrated to the Lume site, however, they need to end in a / or the redirect won't occur and the user will get a 404.
docs.deno.com/kv/manual and docs.deno.com/kv/manual/ should both go to the same place.

fixed in #534


Add TC-ACE-1.5 yaml

Add automation for TC-ACE-1.5

@cecille And restyle failing here means it's not requesting reviews....


I am writing again, because apparently they did not notice.

List of bugs and shortcomings I found. Minecraft version 1.17.1

Enderman, Vex, Piglin/Brutal or any other mob from any mod - Strike visually with the left hand, not the right.
Hoglin, Piglin/Brutal, in the Overworld, after 15 seconds, do not turn into a zombified version of themselves.
Blaze, Enderman - have a long cooldown ability (Compared to Vanilla mobs).
Slime, Magma Cube, (Guardian, Ancient Guardian, Fish on land) - do not have a jump animation when walking.
Magma Cube - does not have a unit of armor (Small Cube - 3, Medium Cube - 6, Large Cube - 12), fire / lava protection (as well as Strider, Wither Skeleton, Zombie Piglin). Has no choice of size (Slime too), has no jump height (Small Cube - 1 block, Medium - 1.5 blocks, Large - 3 blocks), takes fall damage.
Spiders have high speed and wall climb (As if the player were flying in creative). One block is like a half block for them. Do not take fall damage.
Turning into Skeletons, Zombified mobs - the player drowns.
Strider does not take damage in water/rain and does not walk on lava. Does not turn pale when not in lava.

If you hit an aggressive mob, being one of them yourself - mobs nearby will start attacking the player.
Villager do not run away from the player if he turned into a Zombie.
As a Villager, aggressive mobs will start attacking you (only Zombies and (Zoglin) should).
As a golem, aggressive mobs will start attacking you even if you don't hit them (should only Spiders, Zombie, Skeletons and (Zoglin)).
14. Golem throws too high and has no hit animation (Compared to Vanilla mob).

Piglin/Brutal and Hoglins attack the player despite being one of them or any other mob. (attack only Skeletons).
Guardian's ability deals 15 points (Vanilla Guardian's damage is much less, even at high difficulty).
The guardian does not deal damage with spikes if he was hit by a mob or a player.
The skeleton does not run away from the player if he turned into a wolf. (minor error)
Creeper does not run away from the player if he turned into an Ocelot/Cat. (minor error)
Blaze does not take damage from the Snowman. (minor error)
Mobs that can sit on others don't bend their legs, they just stand straight.
When killing some baby mobs, only its adult will appear in the list.
The skeleton has no shooting animation.
Axolotl does not attack a player if that player is Drowned, Octopus or Fish.
Octopuses, Guardians and others have too fast swimming animation, regardless of whether the player is in place or swimming. Also Octopuses swim only in one position - horizontally.
Glowing Octopus does not glow.
28. Shulker does not stick to the block, whether on the ground, wall or ceiling. Has nothing.
Wither has no abilities, cannot fly. His heads look only towards the South.
Ender Dragon has no abilities, cannot fly. Looks only towards the North.
Hoglin/Zoglin does not knock up the Mob or the player on impact like Vanilla mobs do.
Creeper has too powerful an explosion than Vanilla Creeper. And it doesn't have an animation before the explosion.
The Ravager doesn't have the hit animation of the Vanilla mob.
Gast has no animation when shooting from his mouth.
Rabbit doesn't have jump animation.
Phantom has no ability to fly.
37. Zombie or Skeleton helmet runs out too fast.
The player, being any of the Mobs, takes damage from the Slime if he touches him.

Most important!: There is no list of all mobs and their varieties if the player is in Creative. Everyone has no sound, whether it's walking, taking damage, or dying. For example, the passive sounds of Enderman, Skeleton or any other Mob, the splashing of fish or the Guardian if he is on land. Enderman's teleport audio is distorted.
All aggressive Mobs have the same damage and speed. (All this can be fixed with the "/attribute" command), (The main thing is to check the damage with Wikipedia), (Carefully with the speed setting. For example, if you set the speed value like that of the Iron Golem, then when running it will be much slower than the Vanilla Mob , as well as Zombified Piglin or Wither Skeleton).

List of suggestions for Mob abilities.

Being a Pillager, Vex, Piglin/Brutal, pressing the ability key would raise the Mob's attacking hand, as happens with these Vanilla mobs. In parallel with this, the sounds of aggression would have long since been heard.
Being any type of Zombie, pressing the ability key would make the Mob's hands go up.
Being a large Slime/Magma Cube, smaller ones would spawn when you died.
As a Witch, by pressing the ability key, the player could throw potions.
Being a Wolf, pressing the ability key would turn his eyes red and slightly increase damage.
6. Vex could fly through any object (Like an observer).
Being a skeleton, the player could mount a Spider or a Skeleton Horse.
As Baby Zombie the player could mount the Chicken, as the Zombified Baby Piglin the player could mount the Baby Hoglin.
As a Pillager, the player could ride the Ravager.
Being a Silverfish, by pressing the ability key, the player could climb into stone blocks, and when pressed again, get out.
11. Being a Shulker, by pressing the ability key, the player could shoot at any entity, in the same way as the Guardian - by aiming the sight at the target. Also make the ability to open / close the Shulker by pressing Space. When closed, the player would have a defense of 20 units, and the arrows would be repelled, when opened, the protection would be removed.
Being an iron golem, by pressing the ability key, the golem would expose a hand with a flower (Like Vanilla golem).
13. Being an Evoker, by pressing the ability key with a cooldown of 15-20 seconds, jaws would appear (Like the Vanilla Mob), and 3 Wretches would also spawn.
As a Wandering Trader, pressing the ability key at night would make him invisible until the morning.
Being an Axolotl, by pressing the ability key, he would pretend to die and begin to regenerate (Like Vanilla mob).
Being a Goat, by pressing the ability key, he would deal damage from a run, and they also jump high (Like Vanilla mob).
Being a Polar Bear, by pressing the ability key, he would get up on his hind legs, and as a Panda, he would roll over on his back (If bamboo is in the selected slot, then when the ability is activated, Panda would sit down and eat it, instead of turning over on his back back), (I think this is difficult to implement in Mod).
Being a Fox, by pressing the ability key and aiming at a target, while approaching the desired distance, the player would jump to this target, and when pressing the shift, the player would curl up into a ball (Like Vanilla Mob).
Being a Bee, flying close to the target and pressing the ability key, the player would sting, and after a while would die, and also by pressing the right mouse button, he could fly into the Hive (Like Vanilla Mob).

It seems that's all, I hope you read everything and it will be implemented, at least part of it. This mod will be the first in which the implementation will be so accurate!

I'll be trying my best to implement as much of your suggestions as possible. Thanks for your dedication to this project :)


Subscription ID Format

Need to update the subscriptioin ID format within the specification to reflect the ID format returned by the NEMS. The format is the same as the GUID but with the '-' characters removed.

Change made by Bushra on dev branch.


support new iterator interface

Codecov Report

Merging #75 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #75      +/-   ##
==========================================
+ Coverage   95.71%   95.78%   +0.07%
==========================================
  Files           7        7
  Lines         723      735      +12
==========================================
+ Hits          692      704      +12
  Misses         31       31

Impacted Files
Coverage Δ

src/node.jl
98.98% <100%> (+0.02%)
:arrow_up:

src/streamreader.jl
96.26% <100%> (+0.07%)
:arrow_up:

Continue to review full report at Codecov.

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