macOS – moje prvotni nastaveni, aplikace apod.

Automator Workflows do kontext menu

  • Copy Path to File – prida do kontextoveho menu polozku “Copy Path to File”, takze oznacim soubor a rychle zkopiruju cestu jako `Users/jiripavlik/Downloads/IMG_2599.HEIC`
  • Convert to 1680px jpg and wipe metadata – taky do kontextoveho menu, jakykoliv obrazek zkonvertuje do jpg, zmensi na 1680px a smaze EXIF (pouzivam casto na fotky airdropnute z telefonu). Pozn. by default smaze originalni soubor a potrebuje appku

Notes:

  • volitelne je vnutit do main menu: https://apple.stackexchange.com/a/453044
  • workflows se po “nainstalovani” ulozi do ~/Library/Services kde je lze upravovat (right click a Open in Automator)

Extensions do Chromium prohlizece

  • 1Password
  • uBlock Origin
    • basic nastaveni TBD
  • Canned Replies
  • TamperMonkey
    • Hlavni pouzivane skripty:
      • Image Max URL – pri otevreni direct linku na obrazek se automaticky pokusi dopatrat jeho maximalniho rozliseni (otevrit primary source .jpg). Kdyz jsem driv delal v eshopu, tak to byl lifesaver pri hledani velkych fotek produktu, dnes uz je to spis jen very nice to have :D
      • Google Maps button – snad netreba vysvetlovat co to dela
      • Aliexpress URL cleaner – casto si z Aliexpressu davam do poznamek odkazy na produkty, tohle z nich odstrani vsechen nepotrebny balast
      • ebay url cleaner – ibid ale pro eBay odkazy
      • utm stripper – ibid ale odstranuje z odkazu UTM tracking parametry

Testování nových HDD, SSD a paměťových karet před uvedením do provozu

Testování plotnových pevných disků: badblocks

Obecně se mi osvědčila linuxová utilitka badblocks. Ta disk otestuje 4x úplným přepsáním a následným kontrolním čtením: poprvé zapíše na všechny sektory 0, kontrolně celý povrch disku přečte, ze jsou skutečně všude nuly; a tohle zopakuje třikrát, jenom s jedničkami, potom na střídačku 10101010 a 010101. V praxi by to mělo znamenat, že každý sektor během testu 4x změní svoji hodnotu a testuje se, že si ji udrží…

Na závěr na disk ještě pustím integrovaný dlouhý SMART self-test, a pokud vše vyjde bez chyb, považuju disk dostatečně v kondici pro další provoz.

Spousta lidí spoléhá jenom na prvotní pomalé zformátování, což u úplných zmetků stačí, ale už jsem měl dva disky, kde začaly vypadávat tisíce vadných sektorů až při třetím zápisu/čtení při badblocks testu, proto tuhle metodu považuju za spolehlivější.

Nevýhodou je jen to, že tohle otestování poměrně dlouho trvá, je to prostě 4x zápis a 4x čtení celého povrchu disku omezené maximální rychlostí čtení a zápisu.

Stejný testovací „setup“ potom používám i na použité disky: a to jak na ty, které jsem použité koupil (občas se takto dají sehnat super dealy), tak na ty které se chystám prodat:

  • zjistím, že disk je dostatečně v kondici a novému majiteli s vysokou pravděpodobností ještě nějaký čas poslouží
  • bezpečně ho vymaže (pro bezpečné vymazání pevného disku stačí jediný přepis nulami, při badblocks se vše přepíše 4x, a ještě k tomu napřeskáčku)

Pokud není disk na odchodu úplně, tak naopak toto čtyřnásobné přepsání jej donutí přemapovat všechny sektory, které přemapovat jdou. Mám stále v provozu několik disků, kde už to vypadalo bledě (pravidelně chodily emaily ze SMART monitoringu o přibývajících sektorech), ale úplný přepis disku donutil firmware všechny tyto sektory skutečně přemapovat, a potom fungovaly dál, některé i několik desítek tisíc hodin. Samozřejmě už to pak není na produkční použití.

Mám to zautomatizované pomocí bash scriptu, který dělá toto:
– uloží úplný SMART výpis disku před testem (smartctl -a /dev/sdxxx)
– spustí badblocks test (badblocks -vsw /dev/sdxxx)
– spustí dlouhý SMART Self-Test (smartctl -t long /dev/sdxxx)
– znovu uloží SMART výpis
– přes dd rychle otestuje rychlost čtení a zápisu
– odešle na Telegram notifikaci, že je hotovo

smartctl -a $device >/tmp/smart-before.txt
badblocks -wsv $device 
smartctl -t short $device >/dev/null
smartctl -t long $device >/dev/null
smartctl -a $device >/tmp/smart-after.txt

Testování paměťových karet a SSD disků: f3write + f3read

Nevím, jestli je nějaký pokročilejší způsob, jak testovat SSD disky a paměťové karty. Bez keců se přiznám, že na úrovní flash bloků a sektorů už se začínám ztrácet, co přesně se tam hardwarově děje, různé SSD disky mají často i relativně rozsáhlé prostory kam za běhu mohou přesměrovávat data z unavených nebo vadných bloků, proto se tady spokojím s jednoduším testem s využitím f3write a f3read.

f3 utilitka originálně slouží k otestování flash médií na falešnou kapacitu: na úrovni filesystému (nikoliv na úrovni bloků jako badblocks) zapisuje data, „dokud je místo“, a když místo dojde, ověří, že všechna zapsaná data lze přečíst zpátky. Otestuje tak skutečnou kapacitu a rychlost zápisu a čtení. Pokud nastane problém, je něco špatně.

Tohle spustím třikrát po sobě a pokud je vše OK, fixou si na paměťovku udělám tečku a jde do provozu. Zmetek jsem zatím chytil jen jednou a nebyla to zrovna ani paměťovka, ale SSD disk. 1 TB disk se po zapsání cca 600 GB dat zpomalil, až se zcela kousnul (opět jsem měl 2 ks do RAID1, ten první to nedělal a v plné rychlosti projel zápis i čtení přes celou kapacitu).

Pokud by někdo znal nějaký spolehlivější test flash pamětí a SSD disků na nižší úrovni, klidně se podělte. Já si pokaždé, když dělám tento „jednoduchý“ test říkám, že si to pořádně nastuduju, a pak se na to vždy vykašlu. :D

Zároveň jsem tenhle test použil na všechny svoje SD a microSD karty, kterých jsem za 15 let nasbíral asi 30 ks. Až jsem se divil, kolik i velkých karet (16 GB), které ale měly maximální rychlost zápisu třeba jen 8 MB/s jsem doma vlastně měl. Všechno pod 30 MB/s čtení a 20 MB/s zápis jsem prostě vyhodil do koše. :D

Flash média obecně nechci moc trápit opakovaným přepisováním, vzhledem k tomu, jak já chápu, že fungují, to asi není úplně efektivní způsob. Vadné sektory se rovnou mapují na ty ze záložního poolu, takže mi tam prostě stačí, že zapíšu a přečtu data přes celou kapacitu disků bez nějakých hiccupů (třeba jsem měl nějaký SATA SSD, kde rychlost po vyčerpání cache spadla pod úroveň HDD a navíc při větším množství operací začalo být nepoužitelné úplně, což byla trochu zrada :D).

Postup je rovněž jednoduchý:

# f3write 
f3write /Volumes/EOS_DIGITAL/ | tee ~/tmp/f3write.txt
f3read /Volumes/EOS_DIGITAL/ | tee ~/f3read.txt
f3readspeed=$(cat ~/f3read.txt | grep Average | awk '{print $4}')

# + u SSD smart test (viz HDD)

 

Nevytřízené poznámky, co jsem měl u článku:

https://gist.github.com/ilyaigpetrov/e451200ea9b59e8c348422a8f9c5e8e5

https://forum.level1techs.com/t/reliable-hard-drive-test/169181

# from [forums](https://forum.level1techs.com/t/reliable-hard-drive-test/169181/13)
Usually I mostly follow the steps from this guide 11, especially when dealing with 2nd hand drives:

SMART short test
SMART conveyance test
SMART long test
badblocks
SMART long test
For new drives I might do only 1, 2 and 3, depending on time.

This script 5 (from TheArtOfServer) is useful to test big batches btw. It can send you a mail when done, which is nice as badblocks runs can take a while…

Měření vodoměru v Home Assistant: Nastavení ESPHome (díl 2/3)

Toto je druhý článek ze tří o měření spotřeby vody s využitím optického senzoru TCRT5000 připíchlým na vodoměru, a vývojové desky Wemos D1 Mini, která bude informace o proteklé vodě posílat do Home Assistantu. V předchozím článku jsme skončili u toho, že jsme měli senzor TCRT5000 uchycený na vodoměru a nastavený tak, aby se spínal s každým proteklým litrem. Nyní je na řadě tuto informaci dostat do Home Assistant.

Jak dostat impulzy od vodoměru do HA?

V minulém článku jsme použili Arduino IDE k nahrání krátkého kódu, který četl výstupy ze senzoru a vypisoval je. Pokud byste uměli programovat, tak si v Arduino IDE můžete doprogramovat všechno ostatní – připojení k WiFi, odesílání impulzů třeba přes MQTT apod.

Ale zaprvé i kdybych programovat uměl (neumím), tak by to bylo mega zbytečné práce, protože existují projekty jako ESPHome, s jejichž pomocí je nastavení, integrace, a následná správa podobných senzorů výrazně jednodušší.

Continue reading

Měření vodoměru v Home Assistant: Nastavení senzoru TCRT5000 (díl 1/3)

V předchozím článku Přehled možností monitorování spotřeby vody jsem shrnul (teoreticky) hromadu možností, jak číst impulzy z vodoměrů, a jak informace o těchto impulzech dopravit do Home Assistantu.

Jedno z tam zmíněných řešení jsem úspěšně vyzkoušel a už pár týdnů používám, tak ho tady popíšu krok za krokem: Jde o snímání litrového kolečka line-tracking senzorem TCRT5000, a data do HA odesílá Wemos D1 Mini (s ESPHome firmware).

Výhody:

  • Cena potřebného hardwaru je asi $3 (70 Kč)
  • Provoz přes WiFi (netřeba řešit ZigBee nebo Bluetooth)
  • Přímá integrace do Home Assistant přes ESPHome (netřeba řešit ani MQTT)

Nevýhody:

  • Spotřeba (cca 7 kWh/rok), takže problematičtější provoz na baterii
  • S tím související potřeba mít možnost k vodoměru natáhnout tenký drát (3 vodiče, příp. 4 pro dva vodoměry)

Rozdělím to celé na tři části:

1) Odečítání impulzů z vodoměru (tento článek)
2) Odesílání impulzů do Home Assistant (dále jen HA) přes ESPHome
3) Zpracování informací v HA a jejich zobrazení na dashboardu (to do)

Díl 1. Odečítání impulzů z vodoměru

Co je cílem na konci tohoto článku?

  • Mít senzor TCRT5000 připravený k finálnímu uchycení na vodoměr.
  • Mít ho nastavený tak, aby dával 1 impulz s každým jedním protočením litrového kolečka.

Hardware, který jsem použil

  • vodoměr Enbra ER-AM
  • vývojová destička Wemos D1 Mini s čipem ESP8266 (55 Kč)
  • optické čidlo TCRT5000 (10 Kč)

Continue reading

Home Assistant: Přehled možností monitorování spotřeby vody

Nastal čas, kdy jsem si řekl, že by bylo fajn mít v Home Assistantu přehled o spotřebovaných energiích. Začít jsem chtěl s tím, co jsem si myslel, že bude nejjednodušší: sledováním spotřeby vody.

Už nějakou dobu jsem si občas uložil nějaký zajímavý článek nebo nápad, jak to udělat, tak jsem si řekl, že to projdu a pustím se do toho. Tak jsem to chvíli studoval, a zde je přehled všeho, na co jsem přišel (než to sám pozapomínám :D ).

Takže, o co mi jde: chci mít v Home Assistant* přehled o spotřebované vodě (za poslední den, měsíc, rok; v litrech/kubících, v korunách, …)

K tomu je potřeba vyřešit tři hlavní problémy:
1) detekovat, že na vodoměru proběhl nějaký impulz (= proteklo nějaké množství vody)
2) informaci o tom, že tento impulz proběhl, dopravit do HA
3) tuto informaci nějak zpracovat a na konci mít pěkný dashboard, grafy, jestli spotřebovávám víc/míň, než kolik odchází zálohy apod.

Tento článek je přehledem, jakými různými způsoby se dají řešit první dva problémy.

*ad 2), samozřejmě to nemusí být jenom Home Assistant, ale klidně i ThingSpeak, Blynk, ThingsBoard, Domoticz, Zabbix (+ Grafana) aj. Prostě jakákoliv platforma, kde tu informaci chci nějak dále zpracovat.

Continue reading