|
|
楼主 |
发表于 2020-6-25 12:34:33
|
显示全部楼层
- esphome:
# T ~! N$ B1 p6 ~ - name: dsm9 K* _. ^; k, U5 {4 c0 H
- platform: ESP8266
; B1 u8 ^: Y Y* l( {, b' l6 x - board: nodemcuv21 C& e4 I3 }. ^9 T1 N
- + z" A* c ` m) Q
- wifi:, [0 l& Z; H# Q, c7 {( b4 W; P( Y
- ssid: "xxxxxxxxxx"* ` \, ^$ L- Q0 D9 [' k
- password: "xxxxxxxxxxx"
) B$ O! S$ u5 }7 m" L - 3 O6 Z2 U0 R; p- J0 W/ t1 t' |
- # Enable fallback hotspot (captive portal) in case wifi connection fails
% K" }" L0 t% E6 v7 L# v+ f - ap:
# f" \5 ^$ \, z( _7 M8 f - ssid: "nas66.com"
1 k5 w) b6 o5 f( \5 V - password: "nas66.com"
% p0 H$ w3 G" W2 s, ^" ]& F5 }5 n
2 U6 a0 i" R$ _% P7 @- captive_portal:
6 Y1 R, p7 u: ]. S$ g$ X
& e( |9 U5 A f( n- # Enable logging7 e" O6 g% f1 _" s) L* f
- logger:
4 n6 Q% a0 E* S3 f* W; [1 u# K. @; O - 2 ]0 s: K( _2 H# k2 W1 d
- # Enable Home Assistant API
" |$ D+ s$ x! s8 a' l0 M V1 T3 ^ - api:
9 ~. [5 u( P: ` _% Y$ z1 p9 I* I - . H$ {2 [& y% r: H
- i2c:$ x% i+ p' a) A. e( P
- sda: D2- k0 I+ ~! d! c5 S+ }& d. V- _8 ]
- scl: D4
% \8 M. z( }& A* x: K! R ~# `$ A2 U
0 [8 K4 |7 j0 ^' D: p& ~- image:! H, h- i9 T6 f3 P5 o
- - file: "logo.png"
' }, U" e( `8 h - id: my_image
: Z: F! c$ N2 b1 d0 v - resize: 128x648 B. i) p7 j" `. H
2 b5 Z7 V/ u+ |6 q5 j( R5 h- time:
2 @: r$ H" T5 A9 ~ - - platform: sntp" Q8 n# S% G& ~3 n; ?: A
- id: sntp_time4 L- b. d9 Z! O/ j0 W0 G; j, F; k$ z
- timezone: Asia/Shanghai0 k/ m7 D, G% c v
/ `7 n: T( V3 T/ O F- display:, ]- H* T7 u. E g4 M N6 L
- - platform: ssd1306_i2c: n( e4 ~9 _( y6 a! f
- model: "SSD1306 128x64" \) ?7 f6 `$ I: n% v) W! y: S
- id: "ssd1306"* [. S- P8 j1 O7 i( N8 ?, g5 e
- reset_pin: D0
! a _2 P- U0 O5 A- z - address: 0x3C+ y; ~. |; J, _0 b; z( K
- rotation: 180. M# l2 B5 |$ t7 O: s% C
- brightness: 30%& P" P3 E3 ` [# u6 H1 n
- * U6 U* g0 Z/ ?
- pages: h! g9 l7 I% C( j8 f/ {" s
- # - id: page1$ ]% j/ ?- o* U
- # lambda: |-2 L, h/ J1 A, f: r m3 \
- # it.printf(0, 30, id(font3), "S:%s", id(sec).state ? "ON" : "OFF");* O* |3 ^0 Z( m8 z/ ` ^
' W1 J. ]' j- L* ]# {) X$ P- - id: page1$ W5 R( V6 D' k7 p' R! N& m% x
- lambda: |-
* C+ _: V8 ] J! _( j! F - it.print(47, 0, id(font2), "Info");0 \" K9 P1 m2 L" W
- it.line(0, 22, 128, 22);; l/ |+ O7 N) H, Y
- it.line(0, 23, 128, 23);
: N3 J* O" A0 I# M# _3 v/ V u, n3 \ - it.line(0, 24, 128, 24);
4 p6 ]" i2 z: R5 x - it.printf(0, 35, id(font1), "CPU: %.0f%%", id(cpu).state);
) U" T6 v! V% A1 `7 z. { - / g4 O3 q+ S: t7 o; ]
- it.printf(0, 55, id(font1), "MEM:%.0f %/%.0fMB", id(memoryused).state,id(memorytotal).state);4 s$ b8 S0 t' e. u
- ; J( S* G- b0 I. Q9 s( ?$ U
- # it.rectangle(0, 0, 128, 64);
0 ~& C: s" \" y' B% f - - id: page21 C2 g) Z% \4 c5 Z8 {+ y" W& j+ H9 Z
- lambda: |-
0 e3 t/ l% L" o; p! [ - it.print(0, 0, id(font2), "Network Speed");
+ Z0 H1 b+ z/ d8 Z, i - it.line(0, 22, 128, 22);8 N [1 \& y7 l- P; U' L
- it.line(0, 23, 128, 23);2 v; ?9 h8 R) \/ I1 Q; V/ F
- it.line(0, 24, 128, 24);
4 l7 b9 g" ^4 Z0 y$ e - it.printf(0, 35, id(font1), "U: %.0f Kbps", id(up).state);
4 ]% q9 T; `- u8 j% ~ - it.printf(0, 55, id(font1), "D: %.0f Kbps", id(down).state);. R' r7 A% c7 K6 P( w
- - id: page3% |0 _# p) ?( ?" s) L
- lambda: |- r8 i" M. z2 [0 v' I2 g9 h1 ^
- it.print(24, 0, id(font2), "Disk State ");
6 f! Q$ J: Z' k. P' \$ Y - it.line(0, 22, 128, 22);
; I) h! V# M8 \" t" ~) _ - it.line(0, 23, 128, 23);9 a6 y! j# p1 ]8 U' Y
- it.line(0, 24, 128, 24);
4 Y* @5 ^* {) s$ F& O. } - it.printf(0, 35, id(font1), "Use:%s%/%s", id(sdausage).state.c_str(),id(sdatotal).state.c_str());
' [- Q: V0 W8 L+ b7 @3 r- ~3 B% m0 B - it.printf(0, 55, id(font1), "Temp: %.0f °C", id(sdatemp).state);
/ a7 z$ i; X: n: [
5 V+ T3 N9 s/ j; {8 r- # - id: page3
w8 A, B4 S+ W4 `) @ - # lambda: |- ~1 K! ]) W( N6 G$ Y
- # it.print(0, 10, id(font3), "WOW!!!");7 @& |! `9 |2 n# H3 v( I0 W
- # - id: page4& j n, ]4 H* m3 T8 D( `& N, s
- # lambda: |-
) H5 S9 m4 R$ a& X t& R9 m! B$ } - # it.print(0, 10, id(font3), "Fantastic!!");
% n* `' _$ R4 I& Q( ?$ B - # - id: page5
+ m2 I f$ }: x% w. ?, {* H - # lambda: |-
+ [" v u# u( O; i3 ^8 X - # it.image(0, 0, id(my_image));* _5 Q9 k6 Q2 B% Q( f
- - id: showtime% g7 o" D6 d7 K- B( i8 y' K" [
- lambda: |-) V7 d! s% D- J3 e2 U$ B) A8 x+ A+ U! n
- it.print(40, 0, id(font2), "Clock"); ~" x5 S t F5 G
- it.line(0, 22, 128, 22);
( h! G- j; M. T( l- y; C - it.line(0, 23, 128, 23);
0 L% k$ R' \/ ~& E - it.line(0, 24, 128, 24);4 j0 L* u8 b5 S
- it.strftime(15, 42, id(font3), "%H:%M:%S", id(sntp_time).now());
0 a+ p) e- Y1 j, J0 ? - it.strftime(25, 26, id(font1), "%Y-%m-%d", id(sntp_time).now()); 2 \% ~8 I/ S$ C3 E1 A
- ' H; y# L& L) m( a7 T# O; O7 y
- $ b q1 n6 Z- w1 u. A1 u0 M
- ota:
3 v! ?. p q1 ^7 n - 0 J% T- s1 m, q9 |8 f* l$ I+ k
- sensor:- ^/ h# ~( @$ x: W1 g
- - platform: homeassistant
% P- \: b4 q8 O \ - name: "dsm load"
6 W, X8 c: p' w( [- I; T9 A) B - id: "cpu"6 X D% E9 J& J8 `
- entity_id: sensor.synology_dsm_cpu_load_total, E3 p: b0 H6 k6 R! I
- 8 i' a8 b" W/ G+ H
- - platform: homeassistant2 t7 Y: l: ]9 z; A# w7 h
- name: "dsm down"
4 F1 q+ ~! D! N) Y8 X# ?" ?* K - id: "down"
0 [& @/ i! [0 M- c+ z - entity_id: sensor.synology_dsm_network_down
+ F% P3 f0 a, ]4 j. _ - * B" k2 S9 V/ c# }" P' v6 I! ~- x
- - platform: homeassistant
7 t/ @' |* u& X* K - name: "dsm up"
- [) f& W) R8 P: `% u - id: "up"
, ?9 e; L3 z$ b2 K% m - entity_id: sensor.synology_dsm_network_up
# N/ I9 [5 }7 }& y/ n1 S( ~" y
) Y7 T0 i2 f2 `) f: e& ^) e o6 J- - platform: homeassistant
& a) z4 t3 s2 X9 `+ { - name: "memory total") g% ~4 R, b7 T# j$ R. ]% S0 c( Y
- id: "memorytotal"
4 s, n3 t! \: h5 \; s( C: e - entity_id: sensor.synology_dsm_memory_size- `# u! x W0 y" t9 D) L! u- _4 G1 q, `
i; {8 b' E- F+ E/ X( B# }- - platform: homeassistant
3 [0 D4 |0 J8 z3 h O - name: "memory usage"2 O+ p+ u) L- \5 K5 j
- id: "memoryavailable"$ P! P* b3 c- w: ?
- entity_id: sensor.synology_dsm_memory_available_real5 m. @- t- ~2 z) N
- 7 j" ^# }& P$ {' w0 A/ `
- - platform: homeassistant
* O' X; b2 T8 z; ]# G8 t4 h( _ - name: "memory usage"
7 g2 T* W: G( l; p& ^1 u. N - id: "memoryusage"
# D% C1 X. x) d+ X. L! R - entity_id: sensor.synology_dsm_memory_usage_real
& n6 g$ q) K: }+ s; ^) |; R - ! b' Q. W' w* z! E; y$ w, e/ Y% P$ \
- % M7 T+ a& Z9 `5 m+ T
- - name: "memoryused"# F7 Y/ x- o# R3 ^- t
- id: "memoryused"
4 a" {# I7 Q9 U - platform: "template"
0 ` c c: M' t) T1 P - lambda: |-0 {! S, F0 Z i; _: S4 O3 a0 a8 ^
- return id(memorytotal).state - id(memoryusage).state/100*id(memorytotal).state ;
" S1 _& f! E# S' e: w - update_interval: 30s! ~0 q% d/ w! k) D' _
4 O) H4 F& P/ c" \) n- - platform: homeassistant. A: i8 W6 q7 K( v) g
- name: "sdatemperature"
: w& e- T* H" V& | Z - id: "sdatemp"
$ J* Y% T9 g2 h( e5 G7 _, s - entity_id: sensor.synology_dsm_temperature_sda ' n) ~" z$ I- c. u7 X# T4 B5 Y
* g- F; j( O- N8 w- . R" e# H, d/ K! P! N# ~% x \2 v
- text_sensor:& W- q5 E% k5 d& Z+ ^8 i4 \
- - platform: homeassistant
& Q# z4 G0 i6 | - name: "sda total"
% Z9 s0 }5 u( F e; D+ \ - id: "sdatotal") T/ K: v# C) b! `. K B
- entity_id: sensor.synology_dsm_total_size_volume_1
$ J. W h# @& q8 d, K& [ - - platform: homeassistant+ w9 j; I/ ]5 E
- name: "sda usage"
: t, u( R* B7 P* n' w/ O - id: "sdausage"; m" B! D* C$ d* W7 o" ]$ D6 _
- entity_id: sensor.synology_dsm_used_space_volume_1 Q, Q$ v, @) F; p
- 7 e1 F$ Y7 i& J# B6 ]$ L
- binary_sensor:
8 u- ?. f/ n5 ]) U3 s( M4 G - - platform: homeassistant
6 S! g1 L9 E; i& N, Z7 `, y - name: "sec"
& r* \0 p3 h3 Z4 y - id: "sec"9 [5 h& t" {4 I. K
- entity_id: input_boolean.sec_office
1 v$ Y% U6 \, J6 k: y+ K
, s `3 p0 q. w" l9 o# ~3 P- interval:
" I7 Y. C+ V" W8 U" W. z5 r+ k - - interval: 10s
& f4 m1 T9 y9 c$ k. b7 F# p, k# ^; H - then:
2 d( ~6 I4 \7 h! a) B5 ^) N) l) z - - display.page.show_next: ssd1306! \5 D" I; W2 E/ P% d# N. m
- #- component.update: my_display
2 a; v8 B9 S. u8 L% H$ g5 J/ }% B - font:9 e5 q, t- ^3 { G- O/ K
- - file: 'arial.ttf'
8 P# \" R/ y( N# _ - id: font1
: G: Z' i" U! o" ^ - size: 15+ J- R7 c$ Q/ Q* K2 D
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
+ h3 h; V& G' ^) ~, C. k% Z - - file: 'arial.ttf'
6 h/ k% O$ w! v! _9 M - id: font26 t. h6 R! ?/ d0 v
- size: 18- m5 q& ~9 w" w6 P `( ~
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
- P6 B5 e! T/ x2 t, S- Q - / G5 E9 \! {, @4 c0 G3 {
5 T, n5 ?" `1 s- - file: 'arial.ttf'
" @/ H1 U, S2 v7 }. c. u1 C - id: font3
: G8 i# r* T. Z; i7 Q; ~ - size: 23
% k& W: O3 h# p# y5 P - glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
复制代码 以上是dsm源码 你稍微阅读一下即可跟着编辑/ w8 |5 C! @1 w7 W
/ }/ A1 ^2 p8 S1 p5 L. T
5 r( f1 M# k4 O; t- H% h |
|