|
楼主 |
发表于 2020-6-25 12:34:33
|
显示全部楼层
- esphome:
1 @- _% Q, q$ t! w' Q - name: dsm1 C- E: f, |5 a9 M4 {+ E+ R! x) F
- platform: ESP8266$ g3 k5 K0 Y# M* _+ E
- board: nodemcuv2
3 i5 |, `0 P% t3 a% ]3 F
: v; @4 E% ^, j5 J; d- wifi:
9 c: z; k- [' u2 Y5 J) a - ssid: "xxxxxxxxxx"# g0 L, s; m$ e# F+ K& s0 o
- password: "xxxxxxxxxxx"* n. o0 H; I+ G$ d
- 5 r, N0 u# t. u8 n+ |) X& e' c
- # Enable fallback hotspot (captive portal) in case wifi connection fails( I$ G0 h0 c. r, W: N! [
- ap:
: l. L. Y, |* A! H! B - ssid: "nas66.com"; A" G0 [( V5 r, m+ V" s
- password: "nas66.com"
6 n. ^) W; ~' A( q8 r! @ - # Y" K1 i. k& W/ n% O, p
- captive_portal:
* R$ S$ q( B! f
* w* b% x1 @/ A) Y- # Enable logging+ C8 W+ I- |- y
- logger:
4 Z" W o+ E2 ]7 K - ( u; m: t2 m, A% Z
- # Enable Home Assistant API8 ]! t3 x# O* H" T. z2 j. U6 g
- api:8 c0 {8 k0 r% i: d$ O f6 O. U
4 P2 ~4 M4 ~( p- i2c:6 t* a# {% w0 D2 B D! t- A3 R
- sda: D22 z' U5 A. H1 |- |
- scl: D4
) x' z# Q1 _: |- ?: M
) z4 {: D! z. F' J" }: [( \- image:
3 B1 T. X# ?0 }9 x - - file: "logo.png"( J7 z) C( |! E2 U5 X3 N
- id: my_image, |- W1 U) B) c2 P2 |& Z, _* G2 C
- resize: 128x64
; E, j1 M: D q
' V m9 v# d% V* W9 m- time:. k" ]7 ^/ O5 ~. A- F$ n5 m
- - platform: sntp. h; B# p u7 ]
- id: sntp_time
& A, R+ [) R' p2 @3 I; B - timezone: Asia/Shanghai
. ]+ _/ B p! s
- }9 l# z; u/ @/ H" v- display:' ]- }2 f, n; H; L$ M
- - platform: ssd1306_i2c
( {6 y" [/ g) W# D" j - model: "SSD1306 128x64"4 N: k7 H7 ~9 F6 Q: d+ ~3 w) t; _
- id: "ssd1306"
0 d$ e# n0 c6 L/ ^# V. H! w/ f - reset_pin: D00 H6 R, S" z( Q% \9 v% ]
- address: 0x3C
" C3 z) g. A' I5 Z9 d - rotation: 1806 [; ~, o6 `: M) k" a9 o7 [1 y
- brightness: 30%1 u" {! o2 O0 c7 p( X1 Y
- 6 c+ @& S: t7 E1 B1 w
- pages:
% l/ C0 j; K8 ~5 o9 F - # - id: page1
- m( `9 W8 r" }: S* Q; z - # lambda: |-
; ~1 g3 v/ h6 i! ~ - # it.printf(0, 30, id(font3), "S:%s", id(sec).state ? "ON" : "OFF");! l5 y, _" r' ^2 e. ^
/ n- w! P- }! ?/ B7 T1 z- - id: page1: R# z. Q' a7 J& q
- lambda: |-4 g+ q. w1 i- j) S: M
- it.print(47, 0, id(font2), "Info");
$ R' F% P6 _. a8 i7 G( j - it.line(0, 22, 128, 22);
! W: [% d3 x; X+ s" b p - it.line(0, 23, 128, 23);
8 h7 H, N! O7 l/ i - it.line(0, 24, 128, 24);; A) O/ H& t+ W' |
- it.printf(0, 35, id(font1), "CPU: %.0f%%", id(cpu).state);
! F6 B3 ]; N* j% e. e( C/ p" |
8 p u1 H w; Y- it.printf(0, 55, id(font1), "MEM:%.0f %/%.0fMB", id(memoryused).state,id(memorytotal).state);- v% V% x. q- U( i: `
- 3 n# S0 F& C/ G, ?6 ]) J
- # it.rectangle(0, 0, 128, 64);
: R# N8 m9 S8 [& a# L - - id: page25 z; M5 A; ~ Y( c4 v3 U
- lambda: |-
/ n5 t7 o3 q+ {. N' c8 V - it.print(0, 0, id(font2), "Network Speed");& m k1 a3 H6 J- u& q% ?; }8 C
- it.line(0, 22, 128, 22);7 ?# Q0 t+ g/ o$ o& e' f6 w U
- it.line(0, 23, 128, 23);4 _% u9 _2 P3 X# Q
- it.line(0, 24, 128, 24);8 v3 X! }+ m+ N% ^, @$ E& T1 j, l
- it.printf(0, 35, id(font1), "U: %.0f Kbps", id(up).state);) G8 I. ~$ y8 Z0 }/ m2 ^7 x
- it.printf(0, 55, id(font1), "D: %.0f Kbps", id(down).state);# S" v8 n4 C$ O+ k% b; x0 U
- - id: page3% v5 r0 O3 d/ b2 ~7 |8 @
- lambda: |-
' s* B$ y6 a9 V2 J% x; q7 D - it.print(24, 0, id(font2), "Disk State ");5 N1 l5 z7 N; |+ I3 I% E
- it.line(0, 22, 128, 22);5 i/ k+ o) z2 j
- it.line(0, 23, 128, 23);
3 W7 n# O& s) Z ?) w - it.line(0, 24, 128, 24);
0 J& A1 x3 _& c3 q6 f8 b; Q6 J - it.printf(0, 35, id(font1), "Use:%s%/%s", id(sdausage).state.c_str(),id(sdatotal).state.c_str());1 ?+ c) M/ D0 C% d: g! U& a
- it.printf(0, 55, id(font1), "Temp: %.0f °C", id(sdatemp).state);, N1 W- d- S1 ~. r
- ) x: ?) M: p5 S3 d( h# Q' _
- # - id: page3
9 s& `+ A3 a7 T - # lambda: |-2 W H; u/ A$ l; B
- # it.print(0, 10, id(font3), "WOW!!!");; S* P7 X/ B- @ Y4 h% d! ^
- # - id: page4. s) K/ F3 X: A, f: d) c( H; \& Y
- # lambda: |-
' w" B- N. J+ }7 c/ N- F - # it.print(0, 10, id(font3), "Fantastic!!");& \- H7 `- H. ~) Z8 U& N8 Y8 ~1 }
- # - id: page5 G0 I- X2 ]9 z; s8 R# ~; w6 X0 R
- # lambda: |-# `7 e; A2 c# W
- # it.image(0, 0, id(my_image));. C- w. ?5 H1 x% h E, J% g
- - id: showtime2 c. ]3 v# V9 B E/ ^$ x
- lambda: |-9 J; m5 A, h$ ~4 D7 y
- it.print(40, 0, id(font2), "Clock");7 L1 \& @" d( p/ b, r8 R* z' a& J" p
- it.line(0, 22, 128, 22);
! F3 }) G6 m3 v" S - it.line(0, 23, 128, 23);
) U( z5 J C( w# b" {) T - it.line(0, 24, 128, 24);! H) Q& y K1 b3 S
- it.strftime(15, 42, id(font3), "%H:%M:%S", id(sntp_time).now());
& s |) p; d! |9 H: G) O5 f - it.strftime(25, 26, id(font1), "%Y-%m-%d", id(sntp_time).now());
' X9 P* M0 R# A" ~8 t( @0 m
. q% u8 M% U( ?# h0 w/ S& T
: h( b8 z7 L1 `7 s3 c+ p- ota:
4 k+ G2 ?4 P0 ?; b; \
8 p k, a$ W1 G! n- sensor:
- ]2 K& e! a& w E S7 n: \. d - - platform: homeassistant
0 n+ O) f2 T) i m+ [ - name: "dsm load"
, w/ a3 M4 s# c - id: "cpu"! j f% k1 k* C8 h* ?4 g C
- entity_id: sensor.synology_dsm_cpu_load_total' E3 i J* v4 J; M! z- _! G3 @
# x) i# R9 X4 Q" [- - platform: homeassistant
{ Q) b' B- F - name: "dsm down"; j$ l) ?1 H! `' [( x9 C
- id: "down"4 o5 l' H4 J4 j& U! h7 m2 k% q1 B: n# T
- entity_id: sensor.synology_dsm_network_down
2 X' [3 Q+ V( p5 a! F2 S - ; i) m, N4 Z# u4 S0 H0 K! a' Q- j
- - platform: homeassistant
- K+ m% p3 S' I3 C - name: "dsm up"
. X% q, U7 `7 f1 w2 `7 R3 X( Q* | - id: "up" x5 Y! `' h6 D# o2 i# m, ?
- entity_id: sensor.synology_dsm_network_up# W/ V, J# Q' i$ }" N. O. f
- % F/ A: k, q0 u }' e
- - platform: homeassistant: j/ w- z+ k4 F2 K6 s
- name: "memory total" W# @( a3 Q% s3 u' ?5 f
- id: "memorytotal"3 \8 k. g7 x2 O5 w5 k& I0 u4 p
- entity_id: sensor.synology_dsm_memory_size
( f% m& x- \- b' _& Q' o& A I% I
$ e0 N4 o/ [* Y0 R- - platform: homeassistant2 B) S- y; C% K( {3 e/ _
- name: "memory usage"
9 W1 U+ Z$ T6 \1 K e; g - id: "memoryavailable"
- j% D9 w. J8 f/ r$ O0 u% h - entity_id: sensor.synology_dsm_memory_available_real# `( m0 O( D) D! }
- ) W/ B9 N- d" C. q r' j. v
- - platform: homeassistant
9 @- r3 g' Z7 X$ |, P0 z - name: "memory usage"8 G% W# W6 N0 a0 [9 p
- id: "memoryusage"
) j0 n6 s. ]; r/ H. g( Q' S - entity_id: sensor.synology_dsm_memory_usage_real- b. U4 R; K1 e
- ; \3 p+ u# I# X
% d: T; f& B; ]' B6 m- - name: "memoryused"
9 G! D! A1 q; { - id: "memoryused"! U- Z1 Y6 h8 a. l
- platform: "template". h" v, }6 Y4 S. B* E
- lambda: |-5 Y6 K' p- K! N% l7 L: S7 t2 M
- return id(memorytotal).state - id(memoryusage).state/100*id(memorytotal).state ;
' s' k5 h0 g* k l) ^ - update_interval: 30s
! F9 Y G8 k, r% ]( A$ U4 F
, a" X2 G2 v( v" [/ L- - platform: homeassistant
/ u$ P5 T2 |& T5 B/ n/ \ - name: "sdatemperature" m( j- o% ]* R4 U4 g+ z2 ~
- id: "sdatemp"3 i( r. s3 {& ?# v
- entity_id: sensor.synology_dsm_temperature_sda
+ K1 _7 n1 o. I2 y v! K ~ - 0 W9 ]5 ~8 R9 \- f" p n. V
- 1 Y. I5 W1 @; O0 f
- text_sensor:( k; b6 A# a5 x8 @, V: W* w8 V" F
- - platform: homeassistant
# `0 c/ A7 ]; Z$ h$ [- d - name: "sda total"" {. P: Q- _) h$ O$ G% @: H
- id: "sdatotal"5 U. P% A0 T& p/ f
- entity_id: sensor.synology_dsm_total_size_volume_1. t% L- t+ r7 T! t* t+ l+ s4 F
- - platform: homeassistant z1 R8 b- X) \& G
- name: "sda usage"6 [% g1 w. n9 V7 L. A" S
- id: "sdausage"( y+ y# ^$ V T9 x( Y! q
- entity_id: sensor.synology_dsm_used_space_volume_1
: D7 f# r- v8 W+ G. G; y( x/ L - " H7 r/ j7 w% b0 k5 U) D
- binary_sensor:2 }# p6 T. Q" ~" s4 f
- - platform: homeassistant* U" X! o, I+ s( B% q2 h% S# n1 c3 X
- name: "sec"% E* w& C4 n: m$ N9 n2 C
- id: "sec"5 B# F8 c7 C& _) t _; t
- entity_id: input_boolean.sec_office7 F( G2 i* W" Q
- |! f1 ?% J; t: [& z
- interval:
- w7 l) C: w! o7 P/ G( r - - interval: 10s/ }& r8 W; Q' ^2 S; a
- then:7 U7 Z' p* m+ G- S3 H( O
- - display.page.show_next: ssd1306% L8 x/ N# R$ w6 d3 I( B8 }4 |; F
- #- component.update: my_display
/ ~ z% _/ w0 v1 a. K - font:
. b6 X+ _4 {5 R - - file: 'arial.ttf'4 E4 L) }% g6 [
- id: font1
8 J& E' D& x' e$ U - size: 15- n) k/ ?0 w4 o t9 Y& {! ]3 R8 q- F0 ?
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
7 F+ f; M8 L! M% S5 \ - - file: 'arial.ttf'+ V- z7 r% g4 C/ `- M) Z
- id: font2+ {- ~5 n! \( e+ k7 {
- size: 18% l8 s- k ^" A+ f
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
" C, L) l5 r* h6 n2 _
' O2 b' j) y8 H4 b
8 r% C5 c5 {7 B% K! L! x- - file: 'arial.ttf'
* W) C8 I8 j( ^' H' M7 Z/ C: ? - id: font3: o3 }) j* m% a: b
- size: 23
% g" a: d, i+ P - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
复制代码 以上是dsm源码 你稍微阅读一下即可跟着编辑' [1 N3 A: r+ P$ V4 }$ m
' o' _$ A( J% E/ X3 ?/ z: D$ T D$ b7 ~' p) ^; v4 D# h
|
|