• Notice regarding image hosts and attachments. See here.

Home Assistant beginners

Have you tried this yet? If this is the same project that I looked at recently then it looks complicated!

The way it's explained in the video is very clear and easy to follow
I've previously come across instructions that are a mess and looked risky so parked until seeing this video. He also highlights gotchas (through experience no doubt) that no one else has bothered to document so definitely a goer for me
 
Last edited:
Just got back from chores and thought I'd give it a try.

Using windows I needed the kindle driver
Files

1791048813050.webp


Commands executed

Bash:
                                   _
                                  | |
   __ _ _ __ ___   ___  _ __   ___| |_
  / _' | '_ ' _ \ / _ \| '_ \ / _ \ __|
 | (_| | | | | | | (_) | | | |  __/ |_  (-fastbrick)
  \__,_|_| |_| |_|\___/|_| |_|\___|\__|
            by k4y0z & r0rt1z2

Make sure device is in fastboot mode and connected!

Detected: BISCUIT - Echo Dot 2nd Generation - 2016
LK build: 63cb91b-20221007_072309
Will use payload: fastbrick-20221007.img

Run amonet-fastbrick to unlock the bootloader? (Type "YES" to continue): YES

Sending payload, this might take a few attempts...
Exploit most likely successful!

Please wait until the process finishes and DO NOT INTERRUPT IT.

Press any key to exit...

C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0\amonet>adb devices -l
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
G090L90971351CQG       recovery product:omni_biscuit model:Echo_Dot__2nd_Gen_ device:biscuit transport_id:1


C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0\amonet>adb shell twrp wipe cache
Formatting Cache using mke2fs...
Done.
Done processing script file

C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0\amonet>adb shell twrp wipe data
Wiping data without wiping /data/media ...
Done.
Formatting Cache using mke2fs...
Done.
Done processing script file

C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0\amonet>adb shell twrp wipe cache
Formatting Cache using mke2fs...
Done.
Done processing script file

C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0\amonet>adb shell twrp wipe data
Wiping data without wiping /data/media ...
Done.
Formatting Cache using mke2fs...
Done.
Done processing script file

C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0\amonet>cd ..

C:\Users\subliminal_aura\Downloads\amonet-biscuit-v2.0.0>cd ..

C:\Users\subliminal_aura\Downloads>adb push update-kindle-biscuit_puffin-NS65741_user_8146_0013222531716.bin /sdcard/update.zip
update-kindle-biscuit_puffin-NS65741_user_8146_00132225317...e pushed, 0 skipped. 20.3 MB/s (108873539 bytes in 5.110s)

C:\Users\subliminal_aura\Downloads>adb shell twrp install /sdcard/update.zip
Installing zip file '/sdcard/update.zip'
Unmounting System...
Flashing A/B zip to inactive slot: B
Step 1/2Step 2/2To flash additional zips, please reboot recovery to switch to the updated slot.
Done processing script file

C:\Users\subliminal_aura\Downloads>adb shell bcbtool set_active b
Active slot set to b.

C:\Users\subliminal_aura\Downloads>adb reboot recovery

C:\Users\subliminal_aura\Downloads>adb shell twrp install /sdcard/update.zip
Installing zip file '/sdcard/update.zip'
Unmounting System...
Flashing A/B zip to inactive slot: A
Step 1/2Step 2/2To flash additional zips, please reboot recovery to switch to the updated slot.
Done processing script file

C:\Users\subliminal_aura\Downloads>adb push

C:\Users\subliminal_aura\Downloads>adb push boot-root.zip /sdcard/
boot-root.zip: 1 file pushed, 0 skipped. 127.1 MB/s (473633 bytes in 0.004s)

C:\Users\subliminal_aura\Downloads>adb shell twrp install /sdcard/boot-root.zip
Installing zip file '/sdcard/boot-root.zip'
Unmounting System...
- info slot _a: patching boot cmdline
- info slot _a: disabling dm-verity
- info slot _a: mounting system
- info slot _a: patching properties
- info slot _a: installing fos flags override
- info slot _a: patching adbd
- info slot _a: patching selinux policy
- info slot _a: patching fstab.mt8163
- info slot _a: neutering ota updates
- info slot _b: patching boot cmdline
- info slot _b: disabling dm-verity
- info slot _b: mounting system
- info slot _b: patching properties
- info slot _b: installing fos flags override
- info slot _b: patching adbd
- info slot _b: patching selinux policy
- info slot _b: patching fstab.mt8163
- info slot _b: neutering ota updates
- info done
Done processing script file

C:\Users\subliminal_aura\Downloads>adb reboot

C:\Users\subliminal_aura\Downloads>adb shell
biscuit_puffin:/ # ls
acct                         fstab.zram            init.mt8163.rc          init.whad_cc.rc           sbin
bugreports                   init                  init.mt8163.usb.rc      lost+found                sdcard
cache                        init.ace.rc           init.mt8163_amazon.rc   meta_init.connectivity.rc seapp_contexts
config                       init.aosp.rc          init.mt8163_storage.rc  meta_init.modem.rc        selinux_version
d                            init.build.rc         init.perfmonitord.rc    meta_init.rc              sepolicy
data                         init.common_svc.rc    init.perfrecoveryd.rc   mnt                       service_contexts
default.prop                 init.connectivity.rc  init.project.rc         multi_init.rc             storage
dev                          init.environ.rc       init.puffin.rc          oem                       sys
etc                          init.fireos-post.rc   init.randomseed.rc      persist                   system
factory_init.connectivity.rc init.fireos-pre.rc    init.rc                 postinstall               ueventd.mt8163.rc
factory_init.rc              init.fosflags.sh      init.recovery.mt8163.rc proc                      ueventd.rc
file_contexts.bin            init.ledcontroller.rc init.usb.configfs.rc    property_contexts         vendor
fstab.mt8163                 init.modem.rc         init.usb.rc             root                      verity_key
1|biscuit_puffin:/ # ps
USER      PID   PPID  VSIZE  RSS   WCHAN            PC  NAME
root      1     0     34008  2372  SyS_epoll_ 0008fe2c S /init
root      2     0     0      0       kthreadd 00000000 S kthreadd
root      3     2     0      0     smpboot_th 00000000 S ksoftirqd/0
root      4     2     0      0     worker_thr 00000000 S kworker/0:0
root      5     2     0      0     worker_thr 00000000 S kworker/0:0H
root      6     2     0      0     worker_thr 00000000 S kworker/u8:0
root      7     2     0      0     rcu_gp_kth 00000000 S rcu_preempt
root      8     2     0      0     rcu_gp_kth 00000000 S rcu_sched
root      9     2     0      0     rcu_gp_kth 00000000 S rcu_bh
root      10    2     0      0     smpboot_th 00000000 S migration/0
root      11    2     0      0     smpboot_th 00000000 S migration/1
root      12    2     0      0     smpboot_th 00000000 S ksoftirqd/1
root      13    2     0      0     worker_thr 00000000 S kworker/1:0
root      14    2     0      0     worker_thr 00000000 S kworker/1:0H
root      15    2     0      0     smpboot_th 00000000 S migration/2
root      16    2     0      0     smpboot_th 00000000 S ksoftirqd/2
root      17    2     0      0     worker_thr 00000000 S kworker/2:0
root      18    2     0      0     worker_thr 00000000 S kworker/2:0H
root      19    2     0      0     smpboot_th 00000000 S migration/3
root      20    2     0      0     smpboot_th 00000000 S ksoftirqd/3
root      21    2     0      0     worker_thr 00000000 S kworker/3:0
root      22    2     0      0     worker_thr 00000000 S kworker/3:0H
root      23    2     0      0     rescuer_th 00000000 S khelper
root      24    2     0      0     rescuer_th 00000000 S perf
root      25    2     0      0           down 00000000 D GCPU
root      26    2     0      0     update_cou 00000000 S update_tz_count
root      27    2     0      0     rescuer_th 00000000 S writeback
root      28    2     0      0     ksm_scan_t 00000000 S ksmd
root      29    2     0      0     ksm_seeker 00000000 S ksmd_seeker
root      30    2     0      0     rescuer_th 00000000 S crypto
root      31    2     0      0     rescuer_th 00000000 S bioset
root      32    2     0      0     rescuer_th 00000000 S kblockd
root      33    2     0      0     worker_thr 00000000 S kworker/0:1
root      34    2     0      0     rescuer_th 00000000 S md
root      35    2     0      0     worker_thr 00000000 S kworker/1:1
root      36    2     0      0     rescuer_th 00000000 S cfg80211
root      37    2     0      0     cpufreq_in 00000000 S cfinteractive
root      45    2     0      0         kswapd 00000000 S kswapd0
root      46    2     0      0     fsnotify_m 00000000 S fsnotify_mark
root      73    2     0      0     irq_thread 00000000 S irq/108-mt6323-
root      74    2     0      0     _hps_task_ 00000000 D hps_main
root      75    2     0      0        kthread 00000000 D mt_gpufreq_inpu
root      76    2     0      0     rescuer_th 00000000 S accdet_eint
root      77    2     0      0     btif_rx_th 00000000 S btif_rxd
root      78    2     0      0     ktp_thread 00000000 S kthermp
root      79    2     0      0     rescuer_th 00000000 S emi_mpu
root      80    2     0      0     kthread_wo 00000000 S spi32766
root      81    2     0      0     worker_thr 00000000 S kworker/u8:1
root      84    2     0      0     rescuer_th 00000000 S uether
root      85    2     0      0     rescuer_th 00000000 S uether_rx1
root      116   2     0      0     rescuer_th 00000000 S dm_bufio_cache
root      118   2     0      0     rescuer_th 00000000 S binder
root      119   2     0      0     worker_thr 00000000 S kworker/u8:2
root      122   2     0      0     mmc_queue_ 00000000 S mmcqd/0
root      123   2     0      0     mmc_queue_ 00000000 S mmcqd/0boot0
root      124   2     0      0     mmc_queue_ 00000000 S mmcqd/0boot1
root      125   2     0      0     mmc_queue_ 00000000 S mmcqd/0rpmb
root      126   2     0      0     worker_thr 00000000 S kworker/2:1
root      127   2     0      0     worker_thr 00000000 S kworker/u8:3
root      128   2     0      0     rescuer_th 00000000 S ipv6_addrconf
root      141   2     0      0     rescuer_th 00000000 S deferwq
root      142   2     0      0     down_inter 00000000 S entropy_thread
root      143   2     0      0     dboost_dvf 00000000 D dynamic_boost
root      144   2     0      0     rescuer_th 00000000 S f_mtp
root      145   2     0      0     sleep_thre 00000000 S file-storage
root      146   2     0      0     rescuer_th 00000000 S mt-wdk
root      147   2     0      0     msleep_int 00000000 S wdtk-0
root      148   2     0      0     msleep_int 00000000 S wdtk-1
root      149   2     0      0     msleep_int 00000000 S wdtk-2
root      150   2     0      0     msleep_int 00000000 S wdtk-3
root      151   2     0      0     ptp_volt_t 00000000 S PTP_CTRL_MCUSYS
root      152   2     0      0     rescuer_th 00000000 S kdmflush
root      153   2     0      0     rescuer_th 00000000 S bioset
root      154   2     0      0     worker_thr 00000000 S kworker/0:1H
root      155   2     0      0     worker_thr 00000000 S kworker/2:1H
root      156   2     0      0     kjournald2 00000000 S jbd2/dm-0-8
root      157   2     0      0     rescuer_th 00000000 S ext4-rsv-conver
root      158   2     0      0     worker_thr 00000000 S kworker/1:1H
root      159   2     0      0     __spi_sync 00000000 D kworker/3:1H
root      160   2     0      0     worker_thr 00000000 S kworker/3:1
root      161   1     11348  1588           0 0003c05e R /sbin/ueventd
root      166   2     0      0     kjournald2 00000000 S jbd2/mmcblk0p16
root      167   2     0      0     rescuer_th 00000000 S ext4-rsv-conver
root      171   2     0      0     kjournald2 00000000 S jbd2/mmcblk0p15
root      172   2     0      0     rescuer_th 00000000 S ext4-rsv-conver
logd      176   1     33468  5688  sigsuspend b695e110 S /system/bin/logd
root      182   2     0      0     kauditd_th 00000000 S kauditd
pwrsvcd   186   1     32264  5412  poll_sched b618200c S /system/bin/pwrsvcd
root      187   1     13564  1648  __skb_recv b6c76d28 S /system/bin/debuggerd
root      188   1     20052  3324  hrtimer_na b6b6cdf0 S /system/bin/vold
root      190   187   13180  456   __skb_recv b6c77f5c S debuggerd:signaller
root      195   1     13544  1384  __skb_recv b6de8d28 S /vendor/bin/kisd
system    196   1     11920  1092  down_inter b6e20f0c S /vendor/bin/rpmb_svc
ace_messaging 204   1     36104  4692  futex_wait b6cf8a68 S /system/bin/ace_messaging_service
system    206   1     47308  5996  futex_wait b64e2a68 S /system/bin/logmgr
ledcontroller 207   1     49548  7596  sigsuspend b64af110 S /system/bin/ledcontroller
system    217   1     12032  1088  poll_sched b6e4dfb4 S /vendor/bin/wmt_launcher
keystore  218   1     16668  3532  binder_thr b6c55f0c S /system/bin/fireos-dha
ace_eventmgr 221   1     19680  2104  futex_wait b6deba68 S /system/bin/ace_eventmgr
ace_otad  222   1     38644  4948  futex_wait b633ca68 S /system/bin/ace_otad
system    223   1     12960  1608  binder_thr b6c19f0c S /system/bin/servicemanager
root      228   2     0      0     osal_wait_ 00000000 S mtk_stp_psm
root      230   2     0      0     osal_wait_ 00000000 S mtk_stp_btm
root      235   2     0      0     osal_threa 00000000 S mtk_wmtd
system    236   1     15556  1656  binder_thr b6c59f0c S /system/bin/shmd
system    240   1     11624  1296  poll_sched b6e4e00c S /system/bin/sh
ace_sensorsd 241   1     27660  2412  futex_wait b6ac4a68 S /system/bin/ace_sensorsd
system    242   1     34236  2960  futex_wait b6aeda68 S /system/bin/ace_usagestat_protod
system    243   1     31596  3464  futex_wait b6be9a68 S /system/bin/aceusagestatd
shell     245   1     11624  1296  n_tty_read b6e85f5c S /system/bin/sh
root      246   1     77696  1896  poll_sched 0006bfd8 R /sbin/adbd
system    277   1     56440  8532  futex_wait b5e19a68 S /system/bin/UdssCampD
ace_tokend 279   1     34680  3948  hrtimer_na b6bdabb0 S /system/bin/tokend
ace_button_mgr 280   1     42684  6828  futex_wait b6a20a68 S /system/bin/acebuttond
ace_thermald 281   1     29476  2528  futex_wait b6b90a68 S /system/bin/ace_thermald
system    282   1     28728  3716  futex_wait b6640a68 S /system/bin/ace_metric_daemon
bluetooth 286   1     26248  3292  futex_wait b6855a68 S /system/bin/ace_coex_metric
ama       287   1     35056  4704  futex_wait b6269a68 S /system/bin/amakit_server
blemesh   288   1     74408  4100  futex_wait b6399a68 S /system/bin/ace_blemesh_service
ace_input_mgr 294   1     31288  5140  futex_wait b5e9aa68 S /system/bin/aceinputmanager
system    295   1     40728  5956  futex_wait b63cda68 S /system/bin/minerva_service
dbus      385   1     13260  2196  poll_sched b6db7fb4 S /system/bin/dbus-daemon
audio     386   1     75560  15984 do_sigtime b5cd7134 S /system/bin/mixer
audio     387   1     19056  3360  sigsuspend b6b46110 S /system/bin/BTSinkPlayer
ace_otad  388   1     53596  7136  do_sigtime b661b134 S /system/bin/otad
system    389   1     35476  6448  poll_sched b62f100c S /system/bin/perfmonitord
system    391   1     33140  5780  poll_sched b652f00c S /system/bin/perfrecoveryd
system    392   1     29724  4164  futex_wait b68b5a68 S /system/bin/acedropboxd
ahe       393   1     11624  1340  sigsuspend b6d54110 S /system/bin/sh
adepd     394   1     27984  6112  hrtimer_na b695adf0 S /system/bin/adepd
wifi      395   1     21596  2416  hrtimer_na b6c5cdf0 S /system/bin/netmgrd
trackerd  396   1     53936  8268  sigsuspend b657d110 S /system/bin/trackerd
uxevent   397   1     89356  15700 futex_wait b59d1a68 S /system/bin/uxeventd
keystore  399   1     15620  2596  binder_thr b6d7ff0c S /system/bin/keystore
ahe_shs   400   1     11624  1296  sigsuspend b6e74110 S /system/bin/sh
media     401   1     12640  1256  poll_sched b6d7a00c S /vendor/bin/securetime
wifi      402   1     33088  5764  futex_wait b689ba68 S /system/bin/sntp
wifi      403   1     49956  5056  futex_wait b6c5ca68 S /system/bin/wifisvc
factory_reset 404   1     66948  11732 futex_wait b4e5ea68 S /system/bin/factory-reset
provisionerd 405   1     62412  7872  futex_wait b629aa68 S /system/bin/provisionerd
ace_powerd 422   1     44608  3864  futex_wait b6a66a68 S /system/bin/ace_powerd
system    423   1     16524  1940  poll_sched b6dcafb4 S /vendor/bin/psbroker
ahe_shs   424   400   69248  16580 futex_wait b6ccaa68 S /system/bin/SkillContainer
ahe       426   393   108932 16668 futex_wait b6386a68 S /system/bin/AlexaHybridExecutionControllerLitespeed
system    440   1     18676  3488  SyS_epoll_ b6a7cdc8 S /vendor/bin/halo_bssid_scan
davs      593   1     55044  8260  futex_wait b6510a68 S /system/bin/assetmgrd
root      619   2     0      0     worker_thr 00000000 S kworker/0:2
root      821   1     12896  1812  poll_sched b6ce0fb4 S avahi-daemon: running [linux.local]
bluetooth 822   1     76036  8984  futex_wait b6338a68 S /system/bin/btmanagerd
commsd    828   1     56868  10412 futex_wait b673ba68 S /system/bin/commsd
puffinmrm 895   1     151232 22500 futex_wait b482aa68 S /system/bin/puffinmrmd
puffin    904   1     263428 40692 futex_wait b1e1ca68 S /system/bin/PuffinApp
dacd      910   1     44600  6488  futex_wait b5e26a68 S /system/bin/dacd
smarthome 911   1     137668 27188 futex_wait b58d6a68 S /system/bin/SmartHomed
root      1030  1     19904  1712  binder_thr b6d98f0c S /system/bin/neo-service-coordinator
root      1031  1     15048  2096  binder_thr b6d23f0c S /system/bin/neo-init
ace_dioded 1376  1031  40184  6164  binder_thr b6d23f0c S com.amazon.diode.neo
root      1653  2     0      0     rescuer_th 00000000 S amznspi
root      1654  2     0      0     rescuer_th 00000000 S audio_overrun_m
root      1676  2     0      0     worker_thr 00000000 S kworker/u8:4
root      1678  2     0      0     worker_thr 00000000 S kworker/3:2H
root      1716  2     0      0      tx_thread 00000000 S tx_thread
wifi      1729  1     21768  4492  poll_sched b6b5900c S /system/bin/wpa_supplicant
root      1731  2     0      0     worker_thr 00000000 S kworker/2:2
oobe      1837  1     74308  10624 futex_wait b6235a68 S /system/bin/oobed
nobody    1925  1     12004  720   poll_sched b6d2900c S /system/bin/dnsmasq
factory_reset 2005  1031  62580  11160 binder_thr b6d23f0c S com.amazon.factory_reset.neo
root      2116  246   11624  1360  sigsuspend b6d93110 S /system/bin/sh
root      2184  2116  12612  1364           0 b6d58f5c R ps
 
Amazing.... Adopted into Home Assistant.... Now I can get rid of that crappy Amazon echo integration that keeps breaking

I wonder if I can also install other software or do a chroot

1791050708924.webp



Looks quite straight forward. I’m a bit gutted I’ve no 2nd gen Echos now.

Looks like they can be had on the bay for 15 quid which is a bargain considering what you're getting
- a decent HA voice assistant and media player for music assistant

1791050976672.webp
 
..... and the main reason for doing this ?

COMPLETELY LOCAL

No more calling Amazon home or Jeff Bezos

I don't see a single call outside of my network. To make it 100% I can ban it from the internet too

Code:
19:33:30.631948 IP 10.0.0.97.47164 > 10.0.0.254.123: NTPv4, Client, length 48
19:33:30.632370 IP 10.0.0.254.123 > 10.0.0.97.47164: NTPv4, Server, length 48
19:33:31.807313 IP 10.0.0.171.8770 > 10.0.0.97.44582: Flags [P.], seq 4767:4816, ack 4069, win 71, options [nop,nop,TS val 3921538179 ecr 4294904876], length 49
19:33:31.808880 IP 10.0.0.97.44582 > 10.0.0.171.8770: Flags [P.], seq 4069:4133, ack 4816, win 773, options [nop,nop,TS
val 4294906126 ecr 3921538179], length 64
19:33:31.809092 IP 10.0.0.171.8770 > 10.0.0.97.44582: Flags [.], ack 4133, win 71, options [nop,nop,TS val 3921538181 ecr 4294906126], length 0
19:33:31.809482 IP 10.0.0.97.44582 > 10.0.0.171.8770: Flags [P.], seq 4133:4910, ack 4816, win 773, options [nop,nop,TS
val 4294906126 ecr 3921538179], length 777
19:33:31.809693 IP 10.0.0.171.8770 > 10.0.0.97.44582: Flags [.], ack 4910, win 71, options [nop,nop,TS val 3921538181 ecr 4294906126], length 0
 
This is an interesting project especially if like me you’re struggling to get a viable touchscreen solution for your dashboards. I bought the 4” Guiton screen to try out and after a couple of minor hitches, got it set up. The design interface is a very user friendly drag and drop design. I had a workable dashboard up and running in less than a minute.

I had to download the bin file from the Tessera dashboard and install it using esphome.io but that’s a quirk of my own set up. It’s hardly worth mentioning but I’m saying in case anyone has a similar set up

https://tessera-maxgramser.on-forge.com/
 
So the one thing lacking with EchoMuse is synchronisation .... I did try adding it to a music assistant group but when playing radio the players are not in sync

I might just go bleeding edge after seeing this

1791194890843.webp


SendSpin is supported on most of my devices

1791195063293.webp


Also bought another echo dot gen2 from CEX, vinted have some too which are even cheaper but mileage there may vary
 
I've just picked up a couple of 2nd gen Dots to give this a go too, have missed having a voice assistant since ditching Alexa/Google Home.

"Hey Jarvis, turn on the immersion heater"

Yeh well worth it mate. For me it works surprisingly well

Apparently the echo show can be rooted too but not worth it imho

Also have fire hd ... that might be my next mini project
 
Second echo added to the fleet
I'm going to stick to the stable release 2.17 ... 2.18 with SendSpin support is literally days or a week away

So to summarise, features EchoMuse gives you and HA

- Local Voice assistant
- Media player support via Home assistant (Music Assistant SendSpin support coming very soon)
- Bluetooth proxy (untested, this could be very useful)

If you could also pair BT speakers and pass them through to HA as a SendSpin device instead of being a BT proxy that would be amazing

Bluetooth
DeviceControllerScopeFleetDevice
Turns the device into a Home Assistant Bluetooth proxy: it passively listens for BLE advertisements (presence beacons, temperature sensors) and forwards them to HA as a separate ESPHome device — independent of the voice assistant. Enabling permanently switches the Dot's Bluetooth chip away from Android's stack (Bluetooth speaker pairing, never used by EchoMuse, stops being possible).


1791292013955.webp
 
Back
Top Bottom