moved drafts to folder
This commit is contained in:
		
							parent
							
								
									a77055d617
								
							
						
					
					
						commit
						0acfee6187
					
				
					 5 changed files with 0 additions and 0 deletions
				
			
		|  | @ -0,0 +1,220 @@ | |||
| title: Arch Linux on my Dell XPS | ||||
| --- | ||||
| pub_date: 2021-12-31 | ||||
| --- | ||||
| _discoverable: no | ||||
| --- | ||||
| body: | ||||
| 
 | ||||
| ## Create install media | ||||
| ## Install | ||||
| - Follow the wiki | ||||
| 
 | ||||
| ``` sh | ||||
| # Connect to the internet, the moment we do relector will update the mirrorlist | ||||
| iwctl station wlan0 connect <bssid> | ||||
| 
 | ||||
| # Set up date and time | ||||
| timedatectl set-ntp true | ||||
| timedatectl set-timezone Europe/Madrid | ||||
| 
 | ||||
| # Prepare the disk, the setup I used: | ||||
| # Disk #0: 512MB, Boot partition, UEFI type | ||||
| # Disk #1: 16384MB, SWAP, swap type | ||||
| # Disk #2: Rest of the disk, btrfs type | ||||
| # fdisk ... | ||||
| 
 | ||||
| # Prepare the filesystems and the luks encryption | ||||
| mkfs.vfat -F32 /dev/nmve0n1p0 | ||||
| mkswap /dev/nmve0n1p1 | ||||
| cryptsetup luksFormat /dev/nvme0n1p2 # Password here | ||||
| cryptsetup open /dev/nvme0n1p2 luks | ||||
| mkfs.btrfs -L btrfs /dev/mapper/luks | ||||
| 
 | ||||
| # Prepare the btrfs partition | ||||
| mkdir /mnt/luks | ||||
| mount -t btrfs /dev/mapper/luks /mnt/luks | ||||
| cd /mnt/luks | ||||
| btrfs subvolume create root | ||||
| btrfs subvolume create home | ||||
| btrfs subvolume create snapshots | ||||
| 
 | ||||
| # Mount everything under /mnt | ||||
| mkdir /mnt/{home,boot} | ||||
| mount -o subvol=root,compress=lzo /dev/mapper/luks /mnt | ||||
| mount -o subvol=home,compress=lzo /dev/mapper/luks /mnt/home | ||||
| mount /dev/nvme0n1p0 /mnt/boot | ||||
| 
 | ||||
| # Run pacstrap with several base packages: | ||||
| pacstrap /mnt \ | ||||
| base \ | ||||
| linux-lts linux-firmware \ | ||||
| intel-ucode \ | ||||
| terminus-font \ # Fonts in vconsole | ||||
| man-db man-pages \ # Man pages | ||||
| iwd sudo vim NetworkManager # Utilities | ||||
| 
 | ||||
| # Generate the /etc/fstab file | ||||
| genfstab -L /mnt >> /mnt/etc/fstab | ||||
| 
 | ||||
| # Check everything is correct, replace realtime with noatime and discard flags to | ||||
| # make flash drive last longer | ||||
| vim /mnt/etc/fstab | ||||
| 
 | ||||
| # Enter into the system | ||||
| arch-chroot /mnt | ||||
| 
 | ||||
| # Setup timedate | ||||
| timedatectl set-timezone Europe/Madrid | ||||
| 
 | ||||
| # Sync the RTC from the system time (useful if dual booting) | ||||
| hwclock --systohc | ||||
| 
 | ||||
| # Set the en_US.UTF-8 locale (uncomment) | ||||
| vim /etc/locale.gen | ||||
| locale-gen | ||||
| 
 | ||||
| # Setup default locale | ||||
| echo 'LANG=en_US.UTF-8' > /etc/locale.conf | ||||
| 
 | ||||
| # Setup keymap and font | ||||
| echo 'KEYMAP=us\nFONT=ter-232n' > /etc/vconsole.conf | ||||
| pacman -S physlock # To allow locking the computer when in VConsole | ||||
| 
 | ||||
| # Setup the computer hostname | ||||
| echo 'deru' > /etc/hostname | ||||
| 
 | ||||
| # Setup the hosts file | ||||
| echo '127.0.0.1 localhost\n::1 localhost\n127.0.1.1 deru.localdomain deru' > /etc/hosts | ||||
| 
 | ||||
| # Set root password | ||||
| passwd | ||||
| 
 | ||||
| # Setup init hooks to use systemd | ||||
| vim /etc/mkinitcpio.conf | ||||
| # Remove udev and add systemd, sd-vconsole and sd-encrypt | ||||
| 
 | ||||
| # Regenerate initrd | ||||
| mkinitcpio -p linux-lts | ||||
| 
 | ||||
| # Setup systemd-boot | ||||
| bootctl --path=/boot install | ||||
| 
 | ||||
| # Create the bootloader entry for Arch | ||||
| LUKS_UUID=$(cryptsetup luksUUID /dev/nvme0n1p2) | ||||
| cat >/boot/loader/entries/arch.conf <<EOL | ||||
| title  Arch Linux (LTS) | ||||
| linux  /vmlinuz-linux-lts | ||||
| initrd /intel-ucode.img | ||||
| initrd /initramfs-linux-lts.img | ||||
| options rw luks.uuid=${LUKS_UUID} luks.name=${LUKS_UUID}=luks root=/dev/mapper/luks rootflags=subvol=root | ||||
| EOL | ||||
| 
 | ||||
| # Setup bootloader | ||||
| echo 'default arch.conf' > /boot/loader/loader.conf | ||||
| 
 | ||||
| # System ready! | ||||
| exit | ||||
| reboot | ||||
| 
 | ||||
| # Login as root | ||||
| 
 | ||||
| # Setup systemd-resolved | ||||
| systemctl enable --now systemd-resolved | ||||
| ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf | ||||
| 
 | ||||
| # Install and start netowrk manager | ||||
| systemctl enable --now NetworkManager | ||||
| 
 | ||||
| # Connect to wifi if required | ||||
| nmcli d wifi connntect <ssid> password <pass> | ||||
| 
 | ||||
| # Setup hibernate | ||||
| # Get the swap disk UUID (double check manually) | ||||
| sudo blkid | grep swap | sed -rn 's/^.* UUID=\"([a-z0-9\-]+)\".*$/\1/p' | ||||
| 
 | ||||
| # Add the resume boot parameter | ||||
| vim /boot/loader/entries/arch.conf | ||||
| # Under options: | ||||
| # resume=UUID=<uuid> | ||||
| # Systemd should check automatically for the swap partition on GPT tables [1] | ||||
| 
 | ||||
| # Setup suspend-then-hibernate | ||||
| vim /etc/systemd/login.conf | ||||
| # My enabled options: | ||||
| # HandlePowerKey=suspend-then-hibernate | ||||
| # HandleLidSwitch=suspend-then-hibernate | ||||
| # HandleLidSwitchExternalPower=suspend-then-hibernate | ||||
| # HandleLidSwitchDocked=ignore | ||||
| # IdleAction=suspend-then-hibernate | ||||
| # IdleActionSec=10min | ||||
| 
 | ||||
| vim /etc/systemd/sleep.conf | ||||
| # Find HibernateDelaySec and set to 5min | ||||
| 
 | ||||
| # All these will be into effect in next boot | ||||
| ``` | ||||
| 
 | ||||
| - [ ] Boot in 1080p mode | ||||
| - [ ] Docked toggle | ||||
| - [ ] VConsole auto lock? | ||||
|     - [ ] IDLE toggle in VConsole? | ||||
| - [ ] Hardware acceleration | ||||
| 
 | ||||
| ## Hardware acceleration | ||||
| 
 | ||||
| ``` | ||||
| pacman -S vulkan-intel | ||||
| ``` | ||||
| 
 | ||||
| ## Power | ||||
| 
 | ||||
| ``` | ||||
| pacman -S tlp | ||||
| 
 | ||||
| # Edit tlp configuration link power to prevent corruption on btrfs devices | ||||
| # /etc/tlp.conf | ||||
| # ... | ||||
| SATA_LINKPWR_ON_BAT=max_performance | ||||
| # ... | ||||
| ``` | ||||
| 
 | ||||
| # Enable and start tlp | ||||
| systemctl enable --now tlp | ||||
| 
 | ||||
| ## Audio | ||||
| 
 | ||||
| pacman -S alsa-utils pulseaudio pulseaudio-alsa pavucontrol | ||||
| systemctl start --user pulseaudio.socket | ||||
| 
 | ||||
| ## Bluetooth | ||||
| 
 | ||||
| ``` | ||||
| pacman -S bluez bluez-utils | ||||
| modprobe btusb | ||||
| systemctl enable --now bluetooth | ||||
| bluetoothctl -- power on | ||||
| ``` | ||||
| ## Brightness control | ||||
| 
 | ||||
| ``` | ||||
| pacman -S brightnessctl | ||||
| ``` | ||||
| ## Fonts | ||||
| 
 | ||||
| ``` | ||||
| pacman -S otf-ipafont # Japanese | ||||
| pacman -S ttf-bitstream-vera # Default  | ||||
| ``` | ||||
| 
 | ||||
| ## Userspace | ||||
| 
 | ||||
| Enable multilib repos to install steam | ||||
| 
 | ||||
| ``` | ||||
| useradd fmartingr | ||||
| pacman -S sway dmenu xorg-xwayland alacritty qutebrowser | ||||
| pacman -S mako # notifications | ||||
| # TODO notification history? | ||||
| 
 | ||||
| ``` | ||||
|  | @ -0,0 +1,79 @@ | |||
| title: Running Alpine Linux from USB on the Raspberry Pi 3 | ||||
| --- | ||||
| pub_date: 2021-12-31 | ||||
| --- | ||||
| _discoverable: no | ||||
| --- | ||||
| body: | ||||
| 
 | ||||
| ``` bash | ||||
| # Tested on Raspberry Pi 3 | ||||
| # Create a Raspberry pi OS SD card | ||||
| sudo apt update | ||||
| sudo apt upgrade | ||||
| sudo rpi-update | ||||
| echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt | ||||
| reboot | ||||
| 
 | ||||
| # At this point the boot flag is enabled | ||||
| # Prepare the USB | ||||
| 
 | ||||
| # Install Alpine to USB Drive | ||||
| # Format USB | ||||
| # Create two partitions: | ||||
| # - boot fat16 | ||||
| # - root ext4 | ||||
| tar xzvf ~/Downloads/alpine-rpi-3.12.1-armhf.tar.gz | ||||
| 
 | ||||
| # boot/usercfg.txt: | ||||
| enable_uart=1 # Not sure I need this | ||||
| gpu_mem=32 # The minimal memory for the bootloader | ||||
| 
 | ||||
| setup-alpine | ||||
| apk update | ||||
| apk add cfdisk e2fsprogs | ||||
| mkfs.ext4 /dev/sda2 | ||||
| 
 | ||||
| # Setup proper TZ | ||||
| apk add tzdata | ||||
| cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime | ||||
| echo "Europe/Madrid" >  /etc/timezone | ||||
| apk del tzdata | ||||
| 
 | ||||
| mount /dev/sda2 /mnt | ||||
| setup-disk -m sys /mnt | ||||
| mount -o remount,rw /media/sda1 | ||||
| 
 | ||||
| rm -f /media/sda1/boot/* | ||||
| cd /mnt | ||||
| rm boot/boot # Remove symlink | ||||
| 
 | ||||
| mv boot/* /media/sda1/boot/ | ||||
| rm -rf boot | ||||
| mkdir media/sda1 | ||||
| 
 | ||||
| ln -s media/sda1/boot boot | ||||
| 
 | ||||
| # /mnt/etc/fstab | ||||
| # Remove cdrom | ||||
| # Add: | ||||
| /dev/sda1 /media/sda1 vfat default 0 0 | ||||
| 
 | ||||
| # Edit boot cmdline to boot from the ext partition | ||||
| # Add root=/dev/sda2 | ||||
| 
 | ||||
| # Reboot | ||||
| 
 | ||||
| # After install | ||||
| 
 | ||||
| # Set swclock (pi doesn't have a hwclock) | ||||
| rc-update add swclock boot | ||||
| rc-update del hwclock boot | ||||
| service hwclock stop | ||||
| service swclock start | ||||
| 
 | ||||
| apk update | ||||
| apk upgrade | ||||
| 
 | ||||
| 
 | ||||
| ``` | ||||
|  | @ -0,0 +1,102 @@ | |||
| title: Self-hosting my home: Grafana, InfluxDB, ESPHome | ||||
| --- | ||||
| _discoverable: no | ||||
| --- | ||||
| pub_date: 2021-12-31 | ||||
| --- | ||||
| body: | ||||
| 
 | ||||
| ## InfluxDB | ||||
| 
 | ||||
| ``` sql | ||||
| GRANT ALL ON "homeassistant" TO "homeassistant"; | ||||
| ``` | ||||
| 
 | ||||
| ## Grafana | ||||
| 
 | ||||
| ... | ||||
| 
 | ||||
| ## ESP Home | ||||
| 
 | ||||
| ... | ||||
| 
 | ||||
| ### Temperature and Humidity Monitors | ||||
| 
 | ||||
| ... | ||||
| 
 | ||||
| ### Mi Flora | ||||
| 
 | ||||
| - Get MAC Address for the Mi flora | ||||
| 
 | ||||
|     ``` | ||||
|     $ bluetoothctl scan on | grep -i flo | ||||
|     [NEW] Device XX:XX:XX:XX:XX:XX Flower care | ||||
|     ``` | ||||
| 
 | ||||
| 
 | ||||
| - Create a new ESP Home integration to track the sensor: | ||||
| 
 | ||||
|   I name my sensors with numbers so I can write the number on them and identify them easily. You only need to assign sensors to rooms to have them easily available when looking for them on dashboards. | ||||
| 
 | ||||
|     ``` yaml | ||||
|     [...] | ||||
|     # Sensors | ||||
|     esp32_ble_tracker: # Required for BLE scanning | ||||
| 
 | ||||
|     sensor: | ||||
|     - platform: xiaomi_hhccjcy01 | ||||
|         mac_address: 'XX:XX:XX:XX:XX:XX' | ||||
|         temperature: | ||||
|         name: "Flora 1 Temperature" | ||||
|         moisture: | ||||
|         name: "Flora 1 Moisture" | ||||
|         illuminance: | ||||
|         name: "Flora 1 Illuminance" | ||||
|         conductivity: | ||||
|         name: "Flora 1 Soil Conductivity" | ||||
|         battery_level: | ||||
|         name: "Flora 1 Battery Level" | ||||
|     ``` | ||||
| 
 | ||||
| 
 | ||||
| - Validate and upload the configuration to your ESP device. | ||||
| 
 | ||||
| - With that, you could already create a card with the sensors provided by the integration, but for better visual information a [`plant`](https://www.home-assistant.io/integrations/plant/) object can be created with aproppriate values. Information comes from the Mi Flora App, but someone dumped the database and it's available also [on github](https://github.com/khronimo/MiFloraDB). | ||||
| 
 | ||||
|   From the spreadsheet: | ||||
|   - Moisture: `min_soil_moist`/`max_soil_moist` | ||||
|   - Temperature: `min_temp`/`max_temp` | ||||
|   - Conductivity: `min_soil_ec`/`max_soil_ec` | ||||
|   - Brightness: `min_light_lux`/`max_light_lux` | ||||
| 
 | ||||
| 
 | ||||
| - Create a `plant` monitor on the `configuration.yaml` file: | ||||
| 
 | ||||
|     ``` yaml | ||||
|     plant: | ||||
|       parsley: | ||||
|         sensors: | ||||
|           moisture: sensor.flora_1_moisture | ||||
|           battery: sensor.flora_1_battery | ||||
|           temperature: sensor.flora_1_temperature | ||||
|           conductivity: sensor.flora_1_soil_conductivity | ||||
|           brightness: sensor.flora_1_illuminance | ||||
|         min_moisture: 28 | ||||
|         max_moisture: 75 | ||||
|         min_battery: 20 | ||||
|         min_conductivity: 100 | ||||
|         max_conductivity: 2000 | ||||
|         min_temperature: 5 | ||||
|         max_temperature: 35 | ||||
|         min_brightness: 2500 | ||||
|         max_brightness: 55000 | ||||
|         check_days: 3 | ||||
|     ``` | ||||
| 
 | ||||
| - Restart Home Assistant for the changes to take effect. | ||||
| 
 | ||||
| - Add a [Plant Status Card](https://www.home-assistant.io/lovelace/plant-status/) to your dashboard and select the plant you just created. | ||||
| 
 | ||||
|    | ||||
| --- | ||||
| _discoverable: no | ||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.7 KiB | 
|  | @ -0,0 +1,22 @@ | |||
| title: Self-hosting my home: Zigbee devices | ||||
| --- | ||||
| _discoverable: no | ||||
| --- | ||||
| pub_date: 2021-12-31 | ||||
| --- | ||||
| body: | ||||
| 
 | ||||
| ## DeCONZ + Phoscon | ||||
| 
 | ||||
| - Install deconz addon | ||||
| - Add deconz integration | ||||
|     - Host: core_deconz | ||||
| 
 | ||||
| ## Pairing everything | ||||
| - Pair smart plug (show as light) | ||||
| - Pair motion sensor | ||||
| - Pair window/door sensors | ||||
| - Pair light detector | ||||
| 
 | ||||
| --- | ||||
| _discoverable: no | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue