- esphome:( R# e' R' ` \" @" t# O+ Y& a
- name: dsm* Q; A6 @ K, o8 K, ?% |
- platform: ESP8266% o$ z" U( S. A# p4 c
- board: nodemcuv2
7 s, F) R0 a2 X5 L
' g9 a9 i6 S: Z4 W2 ?0 r- wifi:5 i% `6 ^6 F B2 J3 d% i2 d
- ssid: "xxxxxxxxxx"
4 d/ V8 z# e9 |) T8 W5 Z - password: "xxxxxxxxxxx"( _) v! ]& B, p# w: P+ w
/ i" }( g( X7 A8 J, Y/ z G- # Enable fallback hotspot (captive portal) in case wifi connection fails- \3 N5 l& M7 _# `8 I/ V3 P
- ap:
0 B5 ^, h4 C* e/ l4 Y3 ?9 n - ssid: "nas66.com"
2 Z+ t# O) t Y' _0 k - password: "nas66.com"
# S; O( H" B3 s, y - % d( w/ e7 p* J* q5 O- }
- captive_portal:
8 I& ^# S! ]7 s! q& c
3 h! d# L' i' D* r$ ]+ c- # Enable logging H8 s6 }. Z/ R: b! }2 I$ u; C
- logger:
3 T5 H* ?1 L9 }& M: F - % G" m# U$ N; J" @1 n2 Z( ?# j
- # Enable Home Assistant API2 H+ n1 {& [7 }2 V
- api:
9 V( Y. G% [0 m( d" e5 z
% ?& f* l. }% d8 y! z- l/ K5 `% ~- i2c:) |- m4 s+ _0 C7 w' o$ p9 l1 M, G
- sda: D2
0 d0 e# t3 E1 D. g5 p - scl: D4
7 n7 C+ q5 }8 m+ N/ G$ q
5 K! v4 m! {! N, U2 ] J, [- image:- h6 h* E) a/ j' J9 X( h+ Q
- - file: "logo.png"+ i6 {( ]$ i& F7 k0 H
- id: my_image- k4 `5 x, ]& w' Q- ?
- resize: 128x64
2 `7 g# x( b8 } - : H6 s% q& j) J8 H9 X" ]* B1 N5 H
- time:
. {6 O' l# v6 O* {! y# m6 |0 g& V. b - - platform: sntp1 O* G6 G' W' n( l: D, W l" _. U
- id: sntp_time
2 {5 M% U3 f1 x x$ l - timezone: Asia/Shanghai
0 c4 ^, h6 H) d, |1 V
4 k5 W: Y, }/ y; Z% h& X8 }% ^- display:
. O: J( I5 b; K3 l' ?" M - - platform: ssd1306_i2c
6 l. P7 m) _7 Y) i9 b/ S - model: "SSD1306 128x64". E! i; F9 R7 k' Q% Q5 ~
- id: "ssd1306"
. ~+ O0 f- l) ^4 t5 s0 i: h2 L1 f - reset_pin: D0; q$ B7 Q% S! I; X
- address: 0x3C6 l- v: l) I* ^/ R0 c
- rotation: 180
/ s, [$ ?* n, g, @) n& Q) ~5 g - brightness: 30%+ ]9 ~+ c' J1 p( i' X( b! ?2 M9 {
- P# F2 E' m" P& m& \- pages:; e8 l+ s. B5 U1 `6 e+ l9 @
- # - id: page18 E- x: F/ _+ e
- # lambda: |-4 g {) Q O( L* z6 M
- # it.printf(0, 30, id(font3), "S:%s", id(sec).state ? "ON" : "OFF");
3 h/ a: _7 x: x5 a4 L$ A
: ^1 \5 {. p$ |1 s& t- - id: page10 }+ s' z: i6 G9 n% _4 Q- R7 X3 i
- lambda: |-
3 q% I) |' D8 X' Y$ A3 n9 [" N. y - it.print(47, 0, id(font2), "Info");
9 e) f1 p# g: Q( i - it.line(0, 22, 128, 22);5 {) ^4 G+ v Z2 y* r( `0 z) r& Y8 T
- it.line(0, 23, 128, 23);# z- h" G! A4 Q, R
- it.line(0, 24, 128, 24);
3 P) L7 U: G( o( ]. k( ]8 h- p - it.printf(0, 35, id(font1), "CPU: %.0f%%", id(cpu).state);
5 `2 g l; R- r' `1 Z5 Q - 7 L" h+ }5 ^1 ?. b7 Z; s8 E2 u
- it.printf(0, 55, id(font1), "MEM:%.0f %/%.0fMB", id(memoryused).state,id(memorytotal).state);) S: F5 E1 L) n+ j
- 5 \3 \; r7 A% a8 I% O
- # it.rectangle(0, 0, 128, 64);
. ~# L2 c9 w, X- X" ^1 r - - id: page2
: x) s, P! N0 B% R+ M" c% J* I! r - lambda: |-
' m1 m q! S) o& {: r( V: _ - it.print(0, 0, id(font2), "Network Speed");1 U' }8 J9 J+ s: m' D$ s, M
- it.line(0, 22, 128, 22);
) z* W" j' S. w/ W. J - it.line(0, 23, 128, 23);
+ z( E8 R% R0 p ^+ j- v - it.line(0, 24, 128, 24);
4 L+ c/ g! W2 `: M+ D% V v+ d- P - it.printf(0, 35, id(font1), "U: %.0f Kbps", id(up).state);% l' G: Z% R/ X7 r/ |
- it.printf(0, 55, id(font1), "D: %.0f Kbps", id(down).state);4 O$ Q! n; U! Z h% E' U8 ~1 d$ E( x
- - id: page3
' ^7 H4 u$ H% z1 H - lambda: |-' A# w1 y% e* @) c8 R0 M" s. e7 e" F7 S
- it.print(24, 0, id(font2), "Disk State ");( q+ e# ^, p$ z9 P/ i
- it.line(0, 22, 128, 22);; n3 j. I0 K. P: w7 b
- it.line(0, 23, 128, 23);
* n. [$ }, o6 p) p/ J - it.line(0, 24, 128, 24);
; ]' O; c; G2 J/ V5 ^ - it.printf(0, 35, id(font1), "Use:%s%/%s", id(sdausage).state.c_str(),id(sdatotal).state.c_str());, x9 u& F4 L2 k
- it.printf(0, 55, id(font1), "Temp: %.0f °C", id(sdatemp).state);
) @4 T$ m: H! j: n7 V% c - , ]$ `8 X1 A: t# ?1 e! N
- # - id: page3$ M) Q4 h; p, h& m2 v' D2 ^
- # lambda: |-6 J! p5 c# E; ~! X! s
- # it.print(0, 10, id(font3), "WOW!!!");
- `* B. b8 s& U+ v8 E - # - id: page4
: Y. |, s6 L% h' G' j4 H' s4 P - # lambda: |-+ A" ~9 U2 m( f% E
- # it.print(0, 10, id(font3), "Fantastic!!");
. Q! p' Y5 A& S - # - id: page57 B9 Z: ?' t# r- }
- # lambda: |-
6 U+ W6 U3 ?3 d - # it.image(0, 0, id(my_image));
' ]8 J* Q3 r, Z - - id: showtime- v/ M) F- Y5 g5 R3 o9 Y- v
- lambda: |-5 J/ [+ j- n& j- M+ c! d& A
- it.print(40, 0, id(font2), "Clock");9 i3 ~' G* K$ d- m
- it.line(0, 22, 128, 22);3 ]( g2 M* m! H# p
- it.line(0, 23, 128, 23);
" w- t- M5 K& Q - it.line(0, 24, 128, 24);% Y8 D0 N+ S* L- }/ P: A
- it.strftime(15, 42, id(font3), "%H:%M:%S", id(sntp_time).now());
( @ p- F+ k+ I& \* l! f/ S( \7 n- s - it.strftime(25, 26, id(font1), "%Y-%m-%d", id(sntp_time).now()); ) d. s1 |/ ~4 A9 n M
- " t- o6 T! C7 x: O# _; z) ?# c
- 0 H( b: `2 h4 D: H1 Z4 f$ m# s" t
- ota:
; `+ Q2 N0 x# r8 _1 A p - ( j+ R9 B! u; a
- sensor:
% Q: ^4 j4 q" s, ?. S' c0 m' t - - platform: homeassistant
, C8 s, c8 p$ _' X3 p - name: "dsm load"
1 S0 z8 f- _7 W - id: "cpu"
' c/ Q& { {9 B4 F - entity_id: sensor.synology_dsm_cpu_load_total
& Q( ^2 b/ [! p+ x& v" L - * v2 z5 D s2 N! W" z$ }0 @- I0 B& ~
- - platform: homeassistant
& M J; E1 h4 A; }1 |7 X - name: "dsm down"% w& I- X. |7 m: o& P
- id: "down"
1 E4 {* t. c5 w0 }4 ] U5 [5 m - entity_id: sensor.synology_dsm_network_down
5 r7 T, L/ g' z# e9 u/ z$ k; g! ~$ i
. N8 ]1 a/ o# |) Q6 m5 B+ E5 V1 R( f- - platform: homeassistant
( x) M% R# a) M/ I% @+ H$ B1 t" e - name: "dsm up"
0 |/ o( b# n q( Z - id: "up"& H2 {, e9 c i) u
- entity_id: sensor.synology_dsm_network_up
K O4 S& U% N e+ ]8 h) u* n3 s
; u) d% k( O; h [- - platform: homeassistant) Y1 e9 h9 U. ~) v; Y8 p$ C7 T1 Z
- name: "memory total"
8 B$ \& n8 s9 q* m0 n* } - id: "memorytotal"/ s$ K! r6 O5 @- `
- entity_id: sensor.synology_dsm_memory_size
% K2 w! [* g. G2 I3 Q" n. \ O - / K4 {& e3 f1 D/ ^& @6 t
- - platform: homeassistant
- }5 @* p# x2 j; T' r1 Z( K - name: "memory usage"
$ Q$ y6 Z; i4 j& }$ w8 k - id: "memoryavailable"
7 ?- j+ p0 H3 @& J1 r5 v+ F. O1 _% w - entity_id: sensor.synology_dsm_memory_available_real
7 I7 N) ?8 }0 C# n2 Y( v9 b
9 u9 ?4 l7 {9 K# n- - platform: homeassistant
$ u, t t- R/ k7 a; D7 { - name: "memory usage"
# E* c. n: M# t - id: "memoryusage"
, \4 A {/ t- b' Y( r - entity_id: sensor.synology_dsm_memory_usage_real/ @* l+ v6 I) U# V
7 K2 B$ J" o* N7 M$ I z. r0 w
/ X: g9 n; Y6 q4 Q! `3 I0 }- - name: "memoryused"2 x! H: h; |9 ~
- id: "memoryused"( F# E4 P& w+ `
- platform: "template"; b+ L$ E- T* X) y" X0 X% H
- lambda: |-+ q" e; P: I+ k
- return id(memorytotal).state - id(memoryusage).state/100*id(memorytotal).state ;! P- b, U6 ]" H) I' }# f
- update_interval: 30s
# _3 O' j$ a2 [
' i; S9 s4 P# }4 v6 z( S- - platform: homeassistant: T8 T/ p7 P- c" U0 r, Z$ Z; _! c" R
- name: "sdatemperature"
( o1 e% d9 Z) N) ~* y) ^ - id: "sdatemp"
8 G- T! X% q; C- }: v - entity_id: sensor.synology_dsm_temperature_sda n2 G( B; d4 x; J- D4 U
- " `' V" u, m/ n$ M3 o1 j
- s2 Z2 R% |- H- text_sensor:9 [; E: l, z' w3 H4 y5 V& ?
- - platform: homeassistant: E& H( m' e+ m$ W6 D
- name: "sda total"
; k$ w" s1 z- U0 {& M! W# Y& O. C3 a - id: "sdatotal"
& v. q! P8 h# Q+ J5 o6 [ - entity_id: sensor.synology_dsm_total_size_volume_1+ i& V9 G' b! p! g: A. z5 W
- - platform: homeassistant
$ J' z0 W5 G$ T/ ?% r - name: "sda usage"
) N' D1 L. B$ Q - id: "sdausage" L( A8 P2 i8 Q
- entity_id: sensor.synology_dsm_used_space_volume_1 7 I- ]' p: j& w3 K. G4 }( N l
2 D3 }5 `" S1 J& Y% P; u; E2 v. }- binary_sensor:: V* L( r7 e% j* P; N
- - platform: homeassistant) ]$ @5 w6 r/ Z) f l) |
- name: "sec"# @3 s$ E9 C* S; a
- id: "sec"' T- q! j: D6 M; C. [
- entity_id: input_boolean.sec_office: S/ l/ `' [. f; R5 ?- r* o; u
- " G4 i) Q( v' p* H8 j" H
- interval:0 c) ~8 x) o' E1 L5 L- l
- - interval: 10s
# Y4 B; W; I& Q - then:
1 [, X) \4 u: r( ]0 K- E2 k3 F - - display.page.show_next: ssd13064 u2 H8 B( y7 y
- #- component.update: my_display; G1 e: l) v9 {! \' a* f
- font:
9 M# O- f4 u, F2 t! `6 g - - file: 'arial.ttf'
2 c, s( M% H9 R, m - id: font1 _ `2 a$ Y5 d1 D
- size: 15
- @& y. }" d* H - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
5 F# i; n& m! e% U - - file: 'arial.ttf'; J8 G0 R/ G2 T/ l' W, `
- id: font2& J) C9 ?9 a1 M- Q6 f" \
- size: 187 l6 m+ Q' b8 R" p
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"7 E3 H7 T! U& Y2 ^5 G/ P: B% p
- 0 G3 @! B, t b+ j$ H
- 9 f2 F- H8 W" Q" {/ C7 R8 @( R$ N
- - file: 'arial.ttf'
& ]# a7 C! U9 {; u4 V - id: font3
& e% W& |, a4 r - size: 23
: l0 R3 {6 R* k4 g/ N- M - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
复制代码 以上是dsm源码 你稍微阅读一下即可跟着编辑/ P: H0 }* v# n
! O( O! \0 a' M* X# z9 H ^
. d/ k( @1 S. Z |