|
楼主 |
发表于 2020-6-25 12:34:33
|
显示全部楼层
- esphome:5 o4 l M! j( l0 j2 T. T! `
- name: dsm
7 }% i+ u0 |! C L0 N3 Q# k; o - platform: ESP82664 ^+ `6 o& [- [# H, U* i" j
- board: nodemcuv2
( x* U/ P# n0 O! w - * l) a' t0 O6 u6 ]7 E
- wifi:
8 z* X' H& C' U* t9 X. Y& M - ssid: "xxxxxxxxxx", n' S$ R' Y6 A* \1 j: d0 r! n
- password: "xxxxxxxxxxx"
2 U! |; \( j7 N8 U5 g q - 7 \- N T: [% \5 G7 @8 m
- # Enable fallback hotspot (captive portal) in case wifi connection fails. _8 m( b/ l' D6 p! r
- ap:
" k6 y$ ?7 P- G7 ?5 D0 R5 t - ssid: "nas66.com"( ]$ R; y! x0 j$ D: F- q* T
- password: "nas66.com"
& t" v0 Z) ? o# i. g4 q$ |
- j q8 o+ ^7 P5 |- captive_portal:
! B& E5 _* q7 o! T
. U9 `) a) }( l# O3 ^5 i- # Enable logging
$ _. L2 P* {2 r, { Y+ X3 m - logger:) U) c; k6 d+ \0 `, i/ y
! |/ b) ~# v1 {# K7 C! W1 M- # Enable Home Assistant API1 d1 J. N! P" @5 ~* W) l( h0 E
- api:
. h: I ~: G# n4 \- o - : D& C6 a4 E' ]) i* q& Q, d3 U
- i2c:
6 N4 J D1 I) W9 [- ?' ]4 } w8 z. e - sda: D2
) z8 _7 q. q `2 H - scl: D4
1 N& V! C& O$ Q6 t% C9 [: A - 1 u+ Z3 K u% f. q. ?1 b0 r: |
- image:+ v* P7 }$ q( o9 D
- - file: "logo.png"# v G! \8 Y C
- id: my_image
* y: l5 z6 b5 g' C: C- Z$ O - resize: 128x64
' w- e+ o+ @% n1 y3 p - ' R ]9 z% S% s7 Z2 K5 L
- time:
2 \ w7 ^' M7 y! }/ d# S/ N. a9 d - - platform: sntp
0 S0 [- ~, Q$ Q1 Y1 \! T - id: sntp_time
) Y" g6 }! Z- N' T& p! x( C. E. _( Z - timezone: Asia/Shanghai8 Z2 T5 f1 a9 R* I
4 p& j) y, [& Q L+ U7 {- display:
, `4 N4 M6 e# A+ C - - platform: ssd1306_i2c O+ q$ ^- G! \9 w4 }& P
- model: "SSD1306 128x64"+ T- f. E& N! o4 c* R! v
- id: "ssd1306"
8 D/ z/ ?1 T7 v6 d - reset_pin: D0
: L0 }( j/ c7 j+ r; M/ ] - address: 0x3C
1 T$ I ], p4 ~5 [) \ - rotation: 180
& V, r" _& l/ }4 w& T% Y - brightness: 30%! x" M5 F( U# Z. k
& q" Y; h! s7 X$ u" l+ G- pages:
: C; }/ h5 C" r U x - # - id: page1
6 K5 K& }; X: w5 |) ^" v5 p' H( B - # lambda: |-* {, t* [4 ?0 `0 w
- # it.printf(0, 30, id(font3), "S:%s", id(sec).state ? "ON" : "OFF");
* [. P+ j' `) k - * y" e) c) S, }# \6 g* Q7 d" _2 l
- - id: page1, w1 a4 ?8 t* V% w( H o$ q
- lambda: |-
- C% o% R* r# x- g - it.print(47, 0, id(font2), "Info");
6 d$ n3 c4 p) O( R5 M - it.line(0, 22, 128, 22);
; }/ U& [, G& m; J - it.line(0, 23, 128, 23);/ I7 v- m9 z; M! F0 j* ?1 z6 ^, y
- it.line(0, 24, 128, 24);
/ @5 p O, R _3 u9 r8 l Q5 S5 j - it.printf(0, 35, id(font1), "CPU: %.0f%%", id(cpu).state);
6 a, f# e" t O7 h- ^5 | - / r5 Q: b7 w+ N' j- B% z) t. x
- it.printf(0, 55, id(font1), "MEM:%.0f %/%.0fMB", id(memoryused).state,id(memorytotal).state);
$ x5 |2 G6 I P: p4 P1 l# C- z# ~ - $ C6 {6 \. S6 r9 T! w. `
- # it.rectangle(0, 0, 128, 64);3 G ]+ I, i: h( \4 }- I1 j" M
- - id: page2
/ v# C6 J4 T) |- u - lambda: |-$ A0 K5 e/ m* o. p7 V9 _
- it.print(0, 0, id(font2), "Network Speed");% W5 C. i2 t& H% i1 a# n" Y
- it.line(0, 22, 128, 22);
2 A, E5 `6 U" v0 C8 y - it.line(0, 23, 128, 23);2 S$ i; A# X/ Y, D
- it.line(0, 24, 128, 24);: H; }, X- c! e* U( S. Q6 c
- it.printf(0, 35, id(font1), "U: %.0f Kbps", id(up).state);8 ^7 \6 \! \. r2 o# o6 U* c4 H* F" E
- it.printf(0, 55, id(font1), "D: %.0f Kbps", id(down).state);
/ N0 K' `1 l: V4 \8 R; k& l - - id: page3* L }* i6 G/ `+ m6 b( H
- lambda: |- E4 L; y/ H4 ]8 ?2 n4 d
- it.print(24, 0, id(font2), "Disk State ");
f; A6 g) R- Q% e7 U5 W' f- e - it.line(0, 22, 128, 22);
( o8 B' A8 q1 o a5 ~ - it.line(0, 23, 128, 23);$ n+ Q$ d" r( Q* i7 t8 N. G
- it.line(0, 24, 128, 24);+ \/ P) T3 U4 M" C
- it.printf(0, 35, id(font1), "Use:%s%/%s", id(sdausage).state.c_str(),id(sdatotal).state.c_str());
. Z0 O" _0 W8 r- ], B - it.printf(0, 55, id(font1), "Temp: %.0f °C", id(sdatemp).state);
& K4 w2 w( h, l - $ d" ?# a" [8 C$ \
- # - id: page3. U# |( ~' @# K$ W
- # lambda: |-
; C# B9 l0 I G$ L2 C - # it.print(0, 10, id(font3), "WOW!!!");
) R5 R; {4 T R2 [. T8 Q - # - id: page46 X5 [0 k: G7 \6 Q4 ^
- # lambda: |-
9 J# k( h) J" T+ n - # it.print(0, 10, id(font3), "Fantastic!!");* S n* P( K# z: V* H/ d& t; b6 x
- # - id: page5
3 C1 y6 ~) N5 C6 E - # lambda: |-
3 s% f b/ o, I! T1 U+ ^/ S - # it.image(0, 0, id(my_image));
A( C" a% @7 D* B0 O# w( o" U - - id: showtime
( u( l/ C4 J( t. L) _ - lambda: |-
3 M2 ` M- h" X" v: y& O - it.print(40, 0, id(font2), "Clock");8 V0 Z. b' `. m4 L, D
- it.line(0, 22, 128, 22);
3 f) n5 R) C. L( C4 H* N - it.line(0, 23, 128, 23);- ~: J3 y \& g0 {8 h% |
- it.line(0, 24, 128, 24);9 Z, k$ a" Z3 e7 x5 K. I5 _8 q
- it.strftime(15, 42, id(font3), "%H:%M:%S", id(sntp_time).now()); X3 u: W6 U- m" N' x
- it.strftime(25, 26, id(font1), "%Y-%m-%d", id(sntp_time).now()); / n) g* G# o& ^2 G- {
9 Q; o. {& \# C7 I- B6 @: k
/ k) K, g& ~' B! C7 b- ota:; }0 f7 ?1 c. I" C
/ o* K) r2 I. h% X5 f4 C S% M) W- sensor:% @: R' q) k: m% T1 [
- - platform: homeassistant
2 Y/ W! G+ Q' k0 D - name: "dsm load"
* C" q2 I+ \# i! |( q+ t - id: "cpu"; H y l4 [- Y4 o* [1 |' a3 g
- entity_id: sensor.synology_dsm_cpu_load_total
9 }: h& |5 q v5 J3 ? - & }, i/ B0 P6 i; v0 s5 w
- - platform: homeassistant
z/ J2 N) Q7 b) K J - name: "dsm down"
2 V" N7 _7 m- G( [. @# G% d) @1 J Q - id: "down"
& r, v# P2 T: I; z - entity_id: sensor.synology_dsm_network_down
7 A1 ^+ |8 M, O& P3 {6 O - " [7 ]/ I+ ~% K$ [7 L
- - platform: homeassistant3 R$ R P( ?9 d1 P1 Q/ G9 e- k
- name: "dsm up"; x, @0 F5 ]% c
- id: "up" v0 U1 B( i! d R
- entity_id: sensor.synology_dsm_network_up
% h( ? K0 m1 D/ y. R
9 E! y* w6 B1 {, t5 l" x2 J- - platform: homeassistant
4 T& M* z; _. M, p - name: "memory total"
) y5 B$ o. u: Q8 C8 R7 f+ J - id: "memorytotal"2 G# }; i9 x& a& P" B# X# f5 r
- entity_id: sensor.synology_dsm_memory_size6 _7 X* t5 {$ a2 T
- % N/ E( G8 C: A2 ~% C- B
- - platform: homeassistant2 W4 \8 h: M. u
- name: "memory usage"
! y5 Y! k4 T# z: J; l* q6 O' t* f - id: "memoryavailable"5 i5 G' v! I" N+ s0 ~
- entity_id: sensor.synology_dsm_memory_available_real
e3 L; y! i$ E8 y% H6 `
. f; \7 G5 X$ l/ r- - platform: homeassistant. F2 n2 }5 O- Q6 G
- name: "memory usage"
2 O0 w1 Q/ a' N; M7 T - id: "memoryusage"
3 ` k E0 e3 ~2 H- {; Z5 P# { - entity_id: sensor.synology_dsm_memory_usage_real O2 [1 ]6 F# b- l8 C9 |+ g* u
. B7 i1 @$ u8 H. S" z9 |) Z8 T! f
1 {* g! e8 k! J" H5 t! P: M! a+ M- - name: "memoryused"
R* a, ~& d& G- V8 [% V' {0 d - id: "memoryused"* m' R6 u+ s+ x2 G8 \4 m
- platform: "template"* {0 i7 b9 M# M; Z" ^3 {" q
- lambda: |-
2 s/ M' c9 T) ^7 I& ~! c - return id(memorytotal).state - id(memoryusage).state/100*id(memorytotal).state ;
3 g* W: l# l4 j - update_interval: 30s4 g- Z- I% ]" d9 ~( ]% p
4 d! q6 K* ~ x) h9 o- - platform: homeassistant4 o! n) B5 {% L D9 w) u
- name: "sdatemperature"
# r( Z* q) D5 h8 Q1 C - id: "sdatemp"- b2 Q9 y L4 ` x
- entity_id: sensor.synology_dsm_temperature_sda ( u' g! w$ h* P' }) ]
2 I7 P& b: B) M3 ~& h8 H. C6 j0 w8 c" k1 ^
1 H" y8 o# w3 z( ~5 A- text_sensor:
' p m# B, k3 E( t - - platform: homeassistant, R6 R! K: ~: D! Q
- name: "sda total" K0 S; J$ ~. m) Z* q6 @* J- Y
- id: "sdatotal"4 L4 S2 X4 u9 s' [, ^8 ?7 I+ m
- entity_id: sensor.synology_dsm_total_size_volume_1' l2 v' P0 u4 l I% I1 p: a9 x
- - platform: homeassistant
; k# ~4 ]1 s6 L3 p6 g( J - name: "sda usage"
R @+ W& m( R, G# d0 ~! v1 Y - id: "sdausage"
; _3 E0 x# e- E* } - entity_id: sensor.synology_dsm_used_space_volume_1
: Q: o" j: l+ U0 J, N( l \7 m
* a( M- p" i2 r& ]- binary_sensor:
) G) g. n- i+ }. G - - platform: homeassistant
" r; ` f( m3 M! F8 E) J" F6 Z) T - name: "sec"
% }4 w* K; b8 o9 `: C. y" k - id: "sec"
! u- o) q; F) U5 u - entity_id: input_boolean.sec_office' x/ G X" m' V+ J+ ^* H
! i/ t) z U4 W& y- ` A2 n- interval:7 I% g. e& d" M; y- F6 u# l
- - interval: 10s* I7 C) L% `0 j
- then:
8 R. [' n& X7 u, |) G - - display.page.show_next: ssd1306
* ?* j: @7 g! y) [. `0 T( `2 a" j - #- component.update: my_display
) z; B" M' M, o _6 i1 K( H0 b - font:& N( U- n% D5 f% Q4 G
- - file: 'arial.ttf'
, }# W# w& r. G7 k- V$ i - id: font1& b& E, Z3 y5 C% o2 d7 M
- size: 15
9 k( p! V& L( N9 Z" I - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"; o0 h |3 r6 H2 i/ M- x
- - file: 'arial.ttf'
+ |, |' l9 |0 t" A - id: font2
' e' j6 ~$ L! @/ Q9 X - size: 18 [3 S J; ]! Q% T5 s6 V
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
* x8 w. [/ P5 J: N9 ^; P U+ y - 6 d1 i+ U) r P* Q) d
% S( I: E: @9 m! ^2 m- - file: 'arial.ttf'. C3 L# {& L+ D6 g6 k: H
- id: font3) l x& k, T0 ^; e' _1 [
- size: 23/ {3 n( Q! G8 Z
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
复制代码 以上是dsm源码 你稍微阅读一下即可跟着编辑
8 X: i8 @* X7 H& ^# r) g% i* Z$ ~! G; E
' [% y8 d; v, W; A
|
|