|
楼主 |
发表于 2020-6-25 12:34:33
|
显示全部楼层
- esphome:8 M6 m5 a: G6 ^, f/ E2 g' c
- name: dsm
S' O9 z" E% i' @5 n Y - platform: ESP8266* I$ T. V2 [1 a. g0 A2 w
- board: nodemcuv2
9 w0 B) u1 ~; ? Y8 T - ; k4 i2 W6 V/ P$ Z2 @, ~
- wifi:
* i, C7 W0 G/ w. }8 c0 |* i8 \ - ssid: "xxxxxxxxxx"
8 s0 t5 s6 t8 I( [2 E, Y9 { - password: "xxxxxxxxxxx"1 D2 O7 H7 s: M& g" P
" u) R2 e$ J3 t, C+ G; G- # Enable fallback hotspot (captive portal) in case wifi connection fails- i, N& e0 [6 v7 |' h! g3 y
- ap:
6 T5 H) L' w; i- q8 c( s1 k% D - ssid: "nas66.com"
@5 `% I+ w0 ~, M* r# t - password: "nas66.com"
+ Y# _( h! E& ~. Y
4 T& L, c. E& U' j! U2 `: ]1 p- captive_portal:
8 q4 d/ j: C# f: R' u- D7 H, x
4 W* c8 o# f' A" A1 N- # Enable logging5 _7 @: [5 _) b7 k" q2 Z+ P' I
- logger:
- i: q; @ n6 Q5 M
1 Y: a+ Y/ z( D9 H: @- # Enable Home Assistant API
$ B; c4 Y* ], t1 J2 E8 B8 i - api:
& b8 l1 m/ K8 M. [' F
. Z- n/ x+ b6 W6 g1 H- I- i2c:
+ R; }* `/ {# n: C - sda: D2
2 }( a+ p) |* c9 A - scl: D4" [+ o, M2 h9 r" O, G
- 7 K" M7 Z8 @& a$ t. ~5 N0 \- \
- image:" O0 {0 x* @" R/ Q) |
- - file: "logo.png"
, \& l- n9 @+ C) U6 N - id: my_image
5 K9 W- d, ?: S ~( N; n! v - resize: 128x64
: ^! L. Q A: r- q
/ {/ w8 i- l; X/ d3 r( r4 y; ?1 Z- time:6 y' s5 |. p$ }3 h1 e% |! U' x
- - platform: sntp
4 Q( l- @, Y3 n1 K" W - id: sntp_time# ^, E/ d3 M$ b
- timezone: Asia/Shanghai
" ~' J3 b, F* x - ' D) |# }/ c9 b/ b' _$ @ v
- display:
- c# }8 o3 @/ g- {" h - - platform: ssd1306_i2c
; v X& y- d5 E5 Q - model: "SSD1306 128x64"7 M9 o% }: ]6 v/ O% @
- id: "ssd1306"
) F$ ^3 r+ @% m$ ~7 G% U - reset_pin: D0
3 \! t& @$ L4 e" L3 j$ q! s8 [0 i+ W9 Z - address: 0x3C
, a( |4 w8 c8 R" f+ N - rotation: 180 p" A `6 \8 o4 O. N
- brightness: 30%, X( [ R- \2 U. ?; M
- ! P: A* R. {9 t! X& S
- pages:
9 ~& N/ `9 N" i& J% a) x - # - id: page12 R, w0 U6 L6 q( ~$ ?
- # lambda: |-
- X% b) r4 d# v! e5 |, {8 V - # it.printf(0, 30, id(font3), "S:%s", id(sec).state ? "ON" : "OFF");
; T$ U3 [; c$ r; k+ L0 k( u - : W _4 j l' _2 N: s
- - id: page1
+ P+ ~% P9 o2 W - lambda: |-% D' i2 o2 d% h0 U4 l/ f6 i9 j$ ]
- it.print(47, 0, id(font2), "Info");6 c! x/ \0 \0 R. @
- it.line(0, 22, 128, 22);
. U2 c& C1 G j5 ]+ U - it.line(0, 23, 128, 23);
/ @, |$ D6 d" O. X* d - it.line(0, 24, 128, 24);
( w3 E) N) A# } Q& o& x+ R - it.printf(0, 35, id(font1), "CPU: %.0f%%", id(cpu).state);
1 y0 s9 U' w/ D. l5 W! `0 e
; e) W& O! U2 A! B; w- it.printf(0, 55, id(font1), "MEM:%.0f %/%.0fMB", id(memoryused).state,id(memorytotal).state);0 q5 e ?2 X6 Z4 o1 K# ~
- " I7 S9 y6 }, l( Y/ k: ?$ w% ]$ K
- # it.rectangle(0, 0, 128, 64);! ]# x: c7 y) m% D
- - id: page2
& n' e1 f5 m1 f. f, Y7 L - lambda: |-( O* g7 q* _; c# {9 }" X# G2 `# ~5 |
- it.print(0, 0, id(font2), "Network Speed");: h( M9 [6 A; ~+ y* {( W
- it.line(0, 22, 128, 22);) S! W' o0 I I& N: A" A
- it.line(0, 23, 128, 23);
" s7 J7 s m ~/ U; T5 d4 s2 p/ Q - it.line(0, 24, 128, 24);) j! O3 r6 Y5 d) A- Q' A- O
- it.printf(0, 35, id(font1), "U: %.0f Kbps", id(up).state);
6 @* q' S9 \+ s8 x - it.printf(0, 55, id(font1), "D: %.0f Kbps", id(down).state);
: u! x6 A( D5 a! t3 o - - id: page3 B _" P* Y* T' u
- lambda: |-3 Y @4 U& |0 c3 N ^
- it.print(24, 0, id(font2), "Disk State ");4 G/ Y: Y1 e0 U
- it.line(0, 22, 128, 22);: Z D& | V5 ]$ w
- it.line(0, 23, 128, 23);
2 X0 ~( o6 k. n$ g7 T8 I - it.line(0, 24, 128, 24);
9 [* X1 N6 ? ?/ q - it.printf(0, 35, id(font1), "Use:%s%/%s", id(sdausage).state.c_str(),id(sdatotal).state.c_str());. u7 }4 [% y8 J, T! p, D1 o
- it.printf(0, 55, id(font1), "Temp: %.0f °C", id(sdatemp).state); s% v& M+ w. h& n B, }
- & b! s F1 O1 e0 M% y: Y
- # - id: page3
. |/ q0 r5 x. o( g4 d4 E" [ - # lambda: |-
7 u; G! Z, V- b# i; j5 ]' H - # it.print(0, 10, id(font3), "WOW!!!");# U& J! k; q0 s
- # - id: page4
; J9 d Z+ d! t" v3 v6 P* c: |$ H - # lambda: |-
5 [$ h; x" Y- i - # it.print(0, 10, id(font3), "Fantastic!!");
S: J- n$ z* E$ C: x7 {) J - # - id: page59 F3 b0 P" b! z: K* y! S% {9 {
- # lambda: |-
: G" g w0 @4 ? - # it.image(0, 0, id(my_image));4 z% T( z0 A1 F- A' E
- - id: showtime' e/ r+ h w9 Z+ Y' ?1 r
- lambda: |-
R6 p) Y: b5 l# \$ V - it.print(40, 0, id(font2), "Clock");
& q, s0 b& ?8 A( }1 j - it.line(0, 22, 128, 22);
" P' }0 p/ S. x# {# S - it.line(0, 23, 128, 23);
0 {) v. D: Z& ?& `; A7 y0 s - it.line(0, 24, 128, 24);
* z- v0 k6 h6 }4 Q* c2 A! V - it.strftime(15, 42, id(font3), "%H:%M:%S", id(sntp_time).now());! U4 n4 A& {$ {
- it.strftime(25, 26, id(font1), "%Y-%m-%d", id(sntp_time).now()); & `3 |5 X7 J. O" D% a# G
- 3 B5 h. A) Y, h- t
) k5 ?" u0 c# M$ A) `- ota:; v8 f# o% v7 X, K, F& G& B! S
- 9 C4 E* D. X& g0 r5 [$ z
- sensor:3 B! }) S8 z( P1 g1 C3 }
- - platform: homeassistant
" x m! n3 A0 @$ s, h" ]0 X8 i# c - name: "dsm load"
) f9 l, ?. D K; K- z: v* v - id: "cpu"
; h* h- c0 a$ t4 a' C' @% E* P! H - entity_id: sensor.synology_dsm_cpu_load_total* \9 N+ Q1 B- W9 S! P' r! x
8 A; t/ i3 {) I+ O9 C) D- - platform: homeassistant
: _. j& B' }% r( L4 ~& o" ?; ] - name: "dsm down"6 z6 B' U: p) n, m
- id: "down") y% v. X, R9 z. ^; V
- entity_id: sensor.synology_dsm_network_down
0 k4 ?1 p8 E7 m( p* O! k3 z - 0 {5 [& t( c$ Z) H% x
- - platform: homeassistant( E! o- j0 _) v* }4 Q
- name: "dsm up"/ t2 @0 B5 c: A- p
- id: "up"
: w: Y0 @1 `' T- o$ C$ W# v( l - entity_id: sensor.synology_dsm_network_up6 p' Y+ J4 g, _2 l7 H
- , ^8 ]* q( d$ \* n0 H2 N! [( X
- - platform: homeassistant M: w# j/ C) O; V Z
- name: "memory total"$ q# ^5 N6 @: U! z6 K5 @0 c
- id: "memorytotal"$ f6 r4 @, }+ ]9 Y5 h
- entity_id: sensor.synology_dsm_memory_size
$ T. m+ U2 y! w, j6 i0 \! Q - . N* }8 G% l3 ]* I3 g# D
- - platform: homeassistant' M, l( @* k7 N0 I. o6 e" i
- name: "memory usage"- `. @& q/ r3 i& r& `1 z
- id: "memoryavailable"
( \; u( e! |/ e1 M3 f* s - entity_id: sensor.synology_dsm_memory_available_real
, c+ M+ H7 l* \! T! S4 A8 ^( Q
: Q9 T0 t. O' K- - platform: homeassistant
& t* l s* B9 |3 M- H7 m - name: "memory usage"
/ {' p# U' s8 e5 N - id: "memoryusage"
( i# ^8 ?( Q8 r* d: l6 v - entity_id: sensor.synology_dsm_memory_usage_real" _* V' C7 Q. x0 f& G
! X( w: h4 S8 R% R& `" {- 9 X( E+ \# k/ ?: O8 S0 _
- - name: "memoryused"
, V* r1 Q- K% i$ N4 y! a: k+ K - id: "memoryused"2 m) N& p! y6 ]' d, w
- platform: "template"
0 \! z: g* _" w, G; [7 G - lambda: |-
( p ~" Y) J2 O8 c/ r9 {& y - return id(memorytotal).state - id(memoryusage).state/100*id(memorytotal).state ;: N% c$ ?) `; I7 m/ T8 F
- update_interval: 30s% v# U. Z, u5 i% _3 g& k4 i7 k
# E! V: u8 P0 S: e7 O0 m* `' Q- - platform: homeassistant; ]& U4 `& I7 B% }& _ ~
- name: "sdatemperature"
$ E+ o( X4 Y# b3 g r - id: "sdatemp"
& n: z4 b) L. n" p9 M0 u; M2 c - entity_id: sensor.synology_dsm_temperature_sda 4 g1 H4 M ~. D' J8 p
# L7 D; n" _) o- # V ~7 I" N* P2 r& o( w& I5 n
- text_sensor:
) ]) @, k- J) W, V! D9 C - - platform: homeassistant3 k& P# ^; K. y8 t0 G, U7 d0 B
- name: "sda total"& [: ~4 i, O7 B+ \4 t3 l
- id: "sdatotal"
`/ N. ~/ Z6 i' R( E( J6 s$ B - entity_id: sensor.synology_dsm_total_size_volume_1
) R+ s7 C$ V+ V7 \2 l: b - - platform: homeassistant( {3 ^& W2 Z* Q% y" D9 R
- name: "sda usage"
9 E- f# r% v8 D, w! t' | - id: "sdausage"# `, x r+ _5 x: X2 j V
- entity_id: sensor.synology_dsm_used_space_volume_1
& Z, c( L3 T9 Z$ a0 @5 J
' p/ s6 }3 k9 w# `% u- binary_sensor:
% V, h3 |. O( L: f& R% z( ~ - - platform: homeassistant; ?' F$ ` O2 B" ?
- name: "sec"
& H% L! i/ A- i2 Y - id: "sec"0 r( ]- f' R4 }" n% G$ N$ R
- entity_id: input_boolean.sec_office
" D6 f# Q! k- ?6 @7 I( m, r
5 Y( e1 A+ r3 B) d9 s0 @- interval:2 o+ N; ^# N( Y* n3 k
- - interval: 10s
. p, A' v+ d# k2 ?4 E" k - then:$ I$ Z; i1 ~/ U
- - display.page.show_next: ssd1306
' x4 X! _# y4 Z- L0 U1 A0 J# d - #- component.update: my_display5 @3 `" d, h" _9 Q& D. u- [: Q5 [
- font:
% ^, b9 u8 t& I6 k& s - - file: 'arial.ttf'2 Q, Z% A* {. Y; ?
- id: font14 q A6 \/ G, F, w+ v0 m% V% {- V
- size: 15
1 Z/ I* I: W$ I, A) \8 @ - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
. V! E3 s' |+ _# l( n. v/ A - - file: 'arial.ttf'
0 L+ q4 L) e# K. b- d3 b - id: font2! V* U# d% | H# V6 F
- size: 18
y7 l; C( W$ p0 l E2 g - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"9 e% @1 v4 K$ J1 Z' J9 h' F
- ! s( D, E) T/ g, M, Z9 |& l3 i2 m
- W8 B" Q" ` b. f- - file: 'arial.ttf'
/ }8 z8 J L6 t: S3 P% z - id: font3
/ C; |& _' [. S- {1 i5 f - size: 23
+ Y- X( n7 Z" Z: T! }8 ], t - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
复制代码 以上是dsm源码 你稍微阅读一下即可跟着编辑, t- f5 c" `2 }2 y* m9 _
3 B4 H. G6 x: Z. X* \; L) t
6 {, R" i1 u) m* T# A$ o- n/ q4 z |
|