TheCrypt0 / yi-hack-v4

New Custom Firmware for Xiaomi Cameras based on Hi3518e Chipset. It features RTSP, SSH, FTP and more!
GNU General Public License v3.0
1.53k stars 219 forks source link

New ip camera xiomi #205

Open ster1um opened 4 years ago

ster1um commented 4 years ago

Hello, I see new camera mjsxj02hl with 170° fisheye. the wifi chip is Marvell 88W8977

Will it be possible to support it in the future?

davimas commented 4 years ago

Hey,

Any solutions?

I have this MJSXJ02HL Camera here.

Can we use this here? https://github.com/telmomarques/xiaomi-360-1080p-hacks

lucacalcaterra commented 3 years ago

Follow...

av71966 commented 3 years ago

Hey,

Any solutions?

I have this MJSXJ02HL Camera here.

Can we use this here? https://github.com/telmomarques/xiaomi-360-1080p-hacks

They have different CPUs.

davimas commented 3 years ago

Yes - this hack in the link dont work for this great Camera :-(

Screenshot_20200916-092742

av71966 commented 3 years ago

Yes - this hack in the link dont work for this great Camera :-(

Screenshot_20200916-092742

Camera bsed on hi3518e rncv300 CPU like a lot of chinese ip cameras.

x2concepts commented 3 years ago

follow...

TheBisk commented 3 years ago

Hi, have a look here: https://xiaomifans.pl/topic/1066-mod-xiaomi-home-mi-home/?do=findComment&comment=29032

May this help us? Thanks!

marines commented 3 years ago

I've flashed the firmware and accessed telnet and ftp. There are rolling updates of video feed in /tmp directory. Like there are always 3 JPEG and 3 MP4 files containing the most recent snapshots with ever increasing number in the name (eg. 123.mp4, 124.mp4, 125.mp4). Clips are 3 secs long.

I don't really know which direction to go. I think I'll try to set up RTSP server somehow. While I'm fiddling with the camera maybe someone can use the information below. Let me know if you need anything. It's the magnetic MJSXJ02HL camera BTW.

/mnt/mmc # uname -a
Linux Hualai.fw 4.9.37 #7 Thu Oct 17 10:45:21 CST 2019 armv7l GNU/Linux
/mnt/mmc # mount
/dev/root on / type squashfs (ro,relatime)
proc on /proc type proc (rw,nosuid,nodev,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,relatime)
tmpfs on /mnt type tmpfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)
/dev/mtdblock3 on /usr/app type squashfs (ro,relatime)
/dev/mtdblock4 on /backk type squashfs (ro,relatime)
/dev/mtdblock5 on /backa type squashfs (ro,relatime)
/dev/mtdblock6 on /configs type jffs2 (rw,relatime)
/dev/mmcblk0p1 on /mnt/mmc type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/mnt/mmc # free
              total        used        free      shared  buff/cache   available
Mem:          40496       27808        1220        1180       11468       12056
Swap:             0           0           0
/mnt/mmc # df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                 3456      3456         0 100% /
tmpfs                    20248      1196     19052   6% /tmp
tmpfs                    20248         0     20248   0% /dev
tmpfs                    20248         4     20244   0% /run
tmpfs                    20248         0     20248   0% /mnt
/dev/mtdblock3            3712      3712         0 100% /usr/app
/dev/mtdblock4            1024      1024         0 100% /backk
/dev/mtdblock5            3712      3712         0 100% /backa
/dev/mtdblock6             384       240       144  63% /configs
/dev/mmcblk0p1        30234192   8218288  22015904  27% /mnt/mmc
/mnt/mmc # lsmod
Module                  Size  Used by    Tainted: P
hi_mipi_rx             32055  0
hi3516ev200_acodec      6820  0
hi3516ev200_adec        6039  0
hi3516ev200_aenc       29145  0
hi3516ev200_ao         58597  0
hi3516ev200_ai         60883  0
hi3516ev200_aio        26641  1 hi3516ev200_acodec
hi_sensor_i2c           1118  0
hi_pwm                  2090  2
hi3516ev200_ive       181357  0
hi3516ev200_jpege      44872  0
hi3516ev200_h265e     147193  0
hi3516ev200_h264e     122647  0
hi3516ev200_venc      273524  3 hi3516ev200_jpege,hi3516ev200_h265e,hi3516ev200_h264e
hi3516ev200_rc        100984  0
hi3516ev200_vedu       22193  0
hi3516ev200_chnl       33286  0
hi3516ev200_vpss      314506  0
hi3516ev200_isp       152450  0
hi3516ev200_vi        347815  0
hi3516ev200_vgs       131290  0
hi3516ev200_rgn        82291  0
hi3516ev200_sys       105497  0
hi3516ev200_base       56411 21 hi3516ev200_acodec,hi3516ev200_adec,hi3516ev200_aenc,hi3516ev200_ao,hi3516ev200_ai,hi3516ev200_aio,hi_sensor_i2c,hi3516ev200_ive,hi3516ev200_jpege,hi3516ev200_h265e,hi3516ev200_h264e,hi3516ev200_venc,hi3516ev200_rc,hi3516ev200_vedu,hi3516ev200_chnl,hi3516ev200_vpss,hi3516ev200_isp,hi3516ev200_vi,hi3516ev200_vgs,hi3516ev200_rgn,hi3516ev200_sys
hi_osal                56412 74 hi_mipi_rx,hi3516ev200_acodec,hi3516ev200_adec,hi3516ev200_aenc,hi3516ev200_ao,hi3516ev200_ai,hi3516ev200_aio,hi_sensor_i2c,hi_pwm,hi3516ev200_ive,hi3516ev200_jpege,hi3516ev200_h265e,hi3516ev200_h264e,hi3516ev200_venc,hi3516ev200_rc,hi3516ev200_vedu,hi3516ev200_chnl,hi3516ev200_vpss,hi3516ev200_isp,hi3516ev200_vi,hi3516ev200_vgs,hi3516ev200_rgn,hi3516ev200_sys,hi3516ev200_base
sys_config             10155  0
rtl8189ftv            785125  0
cfg80211              219243  1 rtl8189ftv
/mnt/mmc # dmesg
Booting Linux on physical CPU 0x0
Linux version 4.9.37 (root@chenx-Latitude-3490) (gcc version 6.3.0 (HC&C V100R002C00B032_20190114) ) #7 Thu Oct 17 10:45:21 CST 2019
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
CPU: div instructions available: patching division code
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt:Machine model: Hisilicon HI3518EV300 DEMO Board
Memory policy: Data cache writeback
On node 0 totalpages: 11520
free_area_init_node: node 0, pgdat c04d6678, node_mem_map c2c99000
  Normal zone: 90 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 11520 pages, LIFO batch:1
CPU: All CPU(s) started in SVC mode.
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 11430
Kernel command line: mem=45M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=squashfs rw mtdparts=hi_sfc:256K(boot),1984K(kernel),3904K(rootfs),3904K(app),1984K(kback),3904K(aback),384K(cfg),64K(para)
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 40340K/46080K available (3593K kernel code, 147K rwdata, 1020K rodata, 156K init, 246K bss, 5740K reserved, 0K cma-reserved)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xc3000000 - 0xff800000   ( 968 MB)
    lowmem  : 0xc0000000 - 0xc2d00000   (  45 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .text : 0xc0008000 - 0xc038a818   (3595 kB)
      .init : 0xc048b000 - 0xc04b2000   ( 156 kB)
      .data : 0xc04b2000 - 0xc04d6ce0   ( 148 kB)
       .bss : 0xc04d8000 - 0xc0515a18   ( 247 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:16 nr_irqs:16 16
Gic dist init...
arm_arch_timer: Architected cp15 timer(s) running at 50.00MHz (phys).
clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xb8812736b, max_idle_ns: 440795202655 ns
sched_clock: 56 bits at 50MHz, resolution 20ns, wraps every 4398046511100ns
Switching to timer-based delay loop, resolution 20ns
clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=500000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x40008240 - 0x40008298
VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: -1, 3072 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
Serial: AMBA PL011 UART driver
12040000.uart: ttyAMA0 at MMIO 0x12040000 (irq = 20, base_baud = 0) is a PL011 rev2
console [ttyAMA0] enabled
ssp-pl022 12070000.spi: ARM PL022 driver, device ID: 0x00800022
ssp-pl022 12070000.spi: mapped registers from 0x12070000 to c3063000
ssp-pl022 12071000.spi: ARM PL022 driver, device ID: 0x00800022
ssp-pl022 12071000.spi: mapped registers from 0x12071000 to c3067000
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Linux video capture interface: v2.00
clocksource: Switched to clocksource arch_sys_counter
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
workingset: timestamp_bits=30 max_order=14 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
io scheduler noop registered
io scheduler deadline registered (default)
io scheduler cfq registered
pl061_gpio 120b0000.gpio_chip: PL061 GPIO chip @0x120b0000 registered
pl061_gpio 120b1000.gpio_chip: PL061 GPIO chip @0x120b1000 registered
pl061_gpio 120b2000.gpio_chip: PL061 GPIO chip @0x120b2000 registered
pl061_gpio 120b4000.gpio_chip: PL061 GPIO chip @0x120b4000 registered
pl061_gpio 120b5000.gpio_chip: PL061 GPIO chip @0x120b5000 registered
pl061_gpio 120b6000.gpio_chip: PL061 GPIO chip @0x120b6000 registered
pl061_gpio 120b7000.gpio_chip: PL061 GPIO chip @0x120b7000 registered
pl061_gpio 120b8000.gpio_chip: PL061 GPIO chip @0x120b8000 registered
brd: module loaded
hisi-sfc hisi_spi_nor.0: SPI Nor ID Table Version 1.2
hisi-sfc hisi_spi_nor.0: all blocks is unlocked.
hisi-sfc hisi_spi_nor.0: en25qh128 (Chipsize 16 Mbytes, Blocksize 64KiB)
8 cmdlinepart partitions found on MTD device hi_sfc
8 cmdlinepart partitions found on MTD device hi_sfc
Creating 8 MTD partitions on "hi_sfc":
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x000000230000 : "kernel"
0x000000230000-0x000000600000 : "rootfs"
0x000000600000-0x0000009d0000 : "app"
0x0000009d0000-0x000000bc0000 : "kback"
0x000000bc0000-0x000000f90000 : "aback"
0x000000f90000-0x000000ff0000 : "cfg"
0x000000ff0000-0x000001000000 : "para"
dwc3 10030000.hidwc3: Configuration mismatch. dr_mode forced to host
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe6c hci version 0x110 quirks 0x20010010
xhci-hcd xhci-hcd.0.auto: irq 113, io mem 0x10030000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
hub 2-0:1.0: USB hub found
hub 2-0:1.0: hub can't support USB3.0
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver pl2303
usbserial: USB Serial support registered for pl2303
i2c /dev entries driver
hibvt-i2c 12060000.i2c: hibvt-i2c0@100000hz registered
hibvt-i2c 12061000.i2c: hibvt-i2c1@100000hz registered
hibvt-i2c 12062000.i2c: hibvt-i2c2@100000hz registered
uvcvideo: Unable to create debugfs directory
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)
softdog: initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on 10010000.sdhci [10010000.sdhci] using ADMA in legacy mode
mmc1: SDHCI controller on 10020000.sdhci [10020000.sdhci] using ADMA in legacy mode
Initializing XFRM netlink socket
NET: Registered protocol family 17
NET: Registered protocol family 15
Key type dns_resolver registered
hctosys: unable to open rtc device (rtc0)
PM: Hibernation image not present or could not be loaded.
VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
Freeing unused kernel memory: 156K (c048b000 - c04b2000)
This architecture does not have kernel memory protection.
mmc0: new high speed SDHC card at address 1234
mmcblk0: mmc0:1234 SA32G 28.9 GiB
 mmcblk0: p1
random: mount: uninitialized urandom read (4 bytes read)
sdhci-hisi 10020000.sdhci: card claims to support voltages below defined range
rtl8189ftv: loading out-of-tree module taints kernel.
RTL871X: module init start
RTL871X: rtl8189ftv v4.3.24.7_21113.20170208.nova.1.02
RTL871X: build time: Jun 19 2019 14:40:43
RTL871X: module init ret=0
======online_flag = 0, cmos_yuv_flag = 0, sensor=f22, chip=hi3518ev300, board=demo======
sysconfig init success!
Module himedia: init ok
Hisilicon Media Memory Zone Manager
hi_osal 1.0 init success!
mmc1: new high speed SDIO card at address 0001
hi3516ev200_base: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
RTL871X: ++++++++rtw_drv_init: vendor=0x024c device=0xf179 class=0x07
random: fast init done
load sys.ko for Hi3516EV200...OK!
load region.ko for Hi3516EV200...OK!
load vgs.ko for Hi3516EV200...OK!
load vi.ko for Hi3516EV200...OK !
RTL871X: HW EFUSE
RTL871X: hal_com_config_channel_plan chplan:0x20
ISP Mod init!
load vpss.ko for Hi3516EV200...OK!
load chnl.ko for Hi3516EV200...OK!
load vedu.ko for Hi3516EV200...OK!
load rc.ko for Hi3516EV200...OK!
load venc.ko for Hi3516EV200...OK!
load h264e.ko for Hi3516EV200...OK!
load h265e.ko for Hi3516EV200...OK!
load jpege.ko for Hi3516EV200...OK!
load ive.ko for Hi3516EV200...OK!
RTL871X: rtw_regsty_chk_target_tx_power_valid return _FALSE for band:0, path:0, rs:0, t:-1
RTL871X: rtw_ndev_init(wlan0) if1 mac_addr=50:ec:50:44:07:54
load mipi_rx driver successful!
random: crng init done
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
RTL871X: rtw_set_802_11_connect(wlan0)  fw_state=0x00000008
RTL871X: start auth
RTL871X: auth success, start assoc
RTL871X: assoc success
RTL871X: recv eapol packet
RTL871X: send eapol packet
RTL871X: recv eapol packet
RTL871X: send eapol packet
RTL871X: set pairwise key camid:4, addr:18:d6:c7:e8:a4:86, kid:0, type:AES
RTL871X: set group key camid:5, addr:18:d6:c7:e8:a4:86, kid:1, type:AES
x2concepts commented 3 years ago

Awesome, RTSP support would be great! Great work so far!

finnzz commented 3 years ago

I'm thinking about getting this camera. I see the WiF chip is dual band 2.4Ghz/5Ghz, but the product details only mention 2.4Ghz. is it possible to enable the 5Ghz through a firmware change?

SIM0N-F commented 3 years ago

Hey, I would to download this firemware for test it, but I cant download file on xiaomifan.pl, so have you copy of this files please ?

Thanks by advance!

fboulange commented 3 years ago

I've flashed the firmware and accessed telnet and ftp.


@marines 
The PL site is down unfortunatly
Any chance you kept thé firmware so we could have a go ? Looking forward to contribute enabling RTSP.
Cheers
Fred
albpara commented 3 years ago

@marines @SIM0N-F for me is working, could you please try one more time? I have the files in any case

fboulange commented 3 years ago

@albpara I would appreciate getting thé files Can you share a link plz ? Cheers

al-one commented 3 years ago

@fboulange @SIM0N-F https://dl.bintray.com/xiaomi/mjsxj02hl

fboulange commented 3 years ago

@al-one Thank you ! Will investigate soon

SIM0N-F commented 3 years ago

Yes many thanks @fboulange, with this file I can telnet on my camera and I have a busybox shell.

fboulange commented 3 years ago

Cool, I managed as well to telnet and ftp my camera

I used the firmware_hlc6_4.0.5_0105_mod.zip content Copy its content to SD card Press RESET button with paper clip on camera while starting/plugin it

Now we have to find out how to adapt this PL custom firmware the same way @TheCrypt0 did with his "yi-hack-v4" to enable RSTP then some security (disable telnet and enable SSH).

Any tips are wellcome :) Fred

PS I've got a strong background in Java developpement but a really weak on in Linux libraries....

karolzamosc commented 3 years ago

Hi, any updates with RTSP on MJSXJ02HL? Regards

benleb commented 3 years ago

RTSP works, tested a go rtsp server (because easy to compile) 👍

but there’s very low memory available and with killing the xiaomi services the watchdog kicks in and reboots 🤪

so a very low memory rtsp server or disabling the watchdog and killing xiaomi stuff to free up some memory should work ✌️

karolzamosc commented 3 years ago

Can you share the manual how to enable RTSP for a noob user? 🤪

benleb commented 3 years ago

like I did already in my last comment?! but as said, you can’t use it currently, you can start it and seconds after watch ich to crash due to memory or the watchdog

karolzamosc commented 3 years ago

ok, I understand but did you try to disable the motion and person detection in Mi Home? Or maybe use a different RTSP server like the Micro-RTSP

benleb commented 3 years ago

nope, not checked... sounds as you also own such a cam? why don't you experiment with it yourself? :D

karolzamosc commented 3 years ago

I have a lot of Xiaomi cameras (360 security, Imilab N2, Xiaovv D7, P1, Panoramic etc) and answer for your question is simple - I only use all cameras in Mi Home, some time ago I started play with Home Assistant but I am totally noob in programming and "hacking" cameras... :)

alnavasa commented 3 years ago

Also interested! @benleb Thanks for the work so far.

paulomanuelp commented 3 years ago

Hello, What is the latest firmware link version that already supports the rtsp server for MJSXJ02HL?

fuzzznet commented 3 years ago

этому сервер rtsp с очень низкой памятью или отключение сторожевого пса и убийство вещей xiaomi для освобожд

Good afternoon! Can you post an instruction on how to start an RTSP stream?

marxo commented 3 years ago

There are three open repos (in Chinese) that reference Hi3516ev200, although it isn't clear if this camera is using EV200 or EV300.

There is a kernel tree, a rootfs and uboot, all of which could be a great resource to try and build an open source firmware. https://github.com/topics/hi3516ev200

paulomanuelp commented 3 years ago

Hello @benleb ,

Could you provide the rtsp source that do you use in your camera?

paunsurfer commented 3 years ago

Any updates? I've been following progress on this. have a MJSXJ02HL which I would be willing to test / flash.

Revaes commented 3 years ago

Any updates? I've bhave a MJSXJ02HL which I would also be willing to test / flash.

al-one commented 3 years ago

https://github.com/al-one/hass-xiaomi-miot

This component can integrate xiaomi cameras to HomeAssistant.

fboulange commented 3 years ago

In case you're looking for your tokens here is a tool : https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor

karolzamosc commented 3 years ago

https://github.com/al-one/hass-xiaomi-miot

This component can integrate xiaomi cameras to HomeAssistant.

Thanks for reply but it does not work for me. I installed repisotory in HACS, then I added MJSXJ02HL camera in Configuration > Integration > ➕ > Xiaomi Miot providing IP and token but nothing happened then... :(

TheBisk commented 3 years ago

Cattura

I see the camera entity but with no image stream.

al-one commented 3 years ago

@karolzamosc @TheBisk Do you enabled the miot_cloud ?

fboulange commented 3 years ago

At least I got a feed in Home Assistant using @al-one (thanks to him) with this MJSXJ02HL (isa-camera-hlc6)

For detail in : https://github.com/al-one/hass-xiaomi-miot/issues/11#issuecomment-772371095

bahbka commented 3 years ago

@al-one Can you help me please to get feed in HA? At first after adding integration it was exception and no devices was added:

2021-02-12 17:31:01 ERROR (MainThread) [homeassistant.components.camera] Error while setting up xiaomi_miot platform for camera
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 198, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/xiaomi_miot/camera.py", line 45, in async_setup_entry
    await async_setup_platform(hass, config, async_add_entities)
  File "/config/custom_components/xiaomi_miot/camera.py", line 64, in async_setup_platform
    entities.append(MiotCameraEntity(hass, cfg, srv))
  File "/config/custom_components/xiaomi_miot/camera.py", line 85, in __init__
    super().__init__(name, self._device, miot_service)
  File "/config/custom_components/xiaomi_miot/__init__.py", line 595, in __init__
    super().__init__(name, device, miot_service, **kwargs)
  File "/config/custom_components/xiaomi_miot/__init__.py", line 397, in __init__
    super().__init__(name, device, **kwargs)
  File "/config/custom_components/xiaomi_miot/__init__.py", line 277, in __init__
    'hardware_version': self._miio_info.hardware_version,
  File "/usr/local/lib/python3.8/site-packages/miio/device.py", line 85, in hardware_version
    if self.data["hw_ver"] is not None:
KeyError: 'hw_ver'

I commented line 277 at xiaomi_miot/init.py 'hardware_version': self._miio_info.hardware_version, and devices was added but no feed available. Now I see new exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 278, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 474, in async_device_update
    raise exc
  File "/config/custom_components/xiaomi_miot/camera.py", line 132, in async_update
    await super().async_update()
  File "/config/custom_components/xiaomi_miot/__init__.py", line 463, in async_update
    attrs = {
TypeError: 'NoneType' object is not iterable

And when trying to open live stream Error requesting stream: Camera is off.

I've enabled miot_cloud, defined miot_did without success :( My region is ru.

al-one commented 3 years ago

@bahbka Maybe you should use miiocli to your camera.

pip3 install python-miio
miiocli -d device --ip 192.168.lan.ip --token xxxxxx info
Capsman4 commented 3 years ago

Hi , Little question for a french newbee : i need the custom firmware in my camera , it's Ok , but i don't know how to connect to ssh on my camera or connect to http web.

I test modify run.sh with ip address camera but putty ssh nok and http://ipcam not working. Please to help me thank a lot

bahbka commented 3 years ago

@bahbka Maybe you should use miiocli to your camera.

pip3 install python-miio
miiocli -d device --ip 192.168.lan.ip --token xxxxxx info

Same error, KeyError: 'hw_ver' :( also after fixing this error I tried to run command get_ipcprop ['all'], it responds with ['OK'] without any useful info. It seems there is no way to get stream or image from my cam MJSXJ02HL :(

john9393 commented 3 years ago

@ Capsman4 with the custom poslish firm there is NO SSH or HTTP server you can use only TELNET or FTP (putty can be used to connect on TELENt server)

Capsman4 commented 3 years ago

@ jonh9393 , thank you , I think I have a problem, I connect with putty in telnet but it does not work.

Is there a login and password required when I connect to the camera?

john9393 commented 3 years ago

Telnet / FTP User root Pass ismart12

the SD card with the special firm must stay in the camera


De : Capsman4 @.> Envoyé : jeudi 1 avril 2021 12:58 À : TheCrypt0/yi-hack-v4 @.> Cc : john9393 @.>; Comment @.> Objet : Re: [TheCrypt0/yi-hack-v4] New ip camera xiomi (#205)

@ jonh9393 , thank you , I think I have a problem, I connect with putty in telnet but it does not work.

Is there a login and password required when I connect to the camera?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/TheCrypt0/yi-hack-v4/issues/205#issuecomment-811889136, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHPJ5DCC2CUQF6LTUJIQFBTTGRUXTANCNFSM4LOXHYUQ.

grifu commented 3 years ago

I'm trying to configure this camera with Home Assistant and it is required Telnet access, and MIOT integration. My problem is placing the modified version of the firmware (firmware_hlc6_4.0.5_0105_mod) into to the camera. The camera accepts the original version which is signed (demo_hlc6_sign.bin). However, if I try to use the Modified version which comes with just one file (demo_hlc6.bin) or even the original version (without signed file) it simply does not work. The camera just resets the configuration and hear the voice for the QR code. I've tried combining the two files one from the Mod version (demo_hlc6.bin) and the other from the original version (demo_hlc6_sign.bin) and placing the run.sh in the root of the card. The camera downgrades the firmware but there is no telnet! How can I check if the version installed is the modified one without trying to "telnet IP" to the camera? Anybody found this issue when trying to install the modified version?

borewik commented 3 years ago

[...] How can I check if the version installed is the modified one without trying to "telnet IP" to the camera? Anybody found this issue when trying to install the modified version?

You need to connect the camera to your wifi network via xiaomi app. Then you will know the ip address. Once you got it do as instructed, put bin and run.sh on sd card and turn it while keeping reset button pressed. After that you can telnet camera ip

grifu commented 3 years ago

I've already done this procedure. However, the camera downgrade the firmware only with the signed version "demo_hlc6_sign.bin". Reseting the camera with this file in the sdcard the LED goes white and the firmware is upgraded. With the modified version or the unsigned version "demo_hlc6.bin" in the sd card the camera just resets the settings and hear the voice to start the configuration. Cannot access to Telnet even if the "run.sh" script is in the sdcard. Strange behaviour!

borewik commented 3 years ago

I've already done this procedure. However, the camera downgrade the firmware only with the signed version "demo_hlc6_sign.bin". Reseting the camera with this file in the sdcard the LED goes white and the firmware is upgraded. With the modified version or the unsigned version "demo_hlc6.bin" in the sd card the camera just resets the settings and hear the voice to start the configuration. Cannot access to Telnet even if the "run.sh" script is in the sdcard. Strange behaviour!

Modification that runs sh script from mmc card was previously done in app.bin/bin/init_app.sh, by the looks of it those files are exactly the same and are not modified in both firmware bins from "firmware_hlc6_4.0.5_0105_signed.zip". Maybe that change was made somewhere else, didn't check. Try this one, it is signed version with same modification as was made in previous telnet working fws.

image

grifu commented 3 years ago

Thank you for sharing the file. I've tried to install the firmware without luck. No White light, just voice "Reset successful ...". There is a diference in size between the files, the signed version that works for me "demo_hlc6_sign.bin" is 11,1 MB and all the other versions that I've tried including yours "demo_hlc6.bin" are 12,1 MB. I'm copying the files to the card in OSX. I can't understand this behaviour.