|
楼主 |
发表于 2020-6-25 12:34:33
|
显示全部楼层
- esphome:
/ @; k+ B; O) D/ [0 l6 |/ } - name: dsm# `. k" z# |$ U
- platform: ESP8266
2 ~) [8 j" K! `# }$ p$ v - board: nodemcuv2
+ Q* @* h) {+ M; H2 e9 | - . S7 U7 X% e j0 {' @$ ?* u; _( B/ d2 ]
- wifi:
- }8 u; I; b! S7 _& f* O9 O+ q - ssid: "xxxxxxxxxx"
) u; n, ]: J( _2 S- \ - password: "xxxxxxxxxxx"- [0 g5 V$ u/ r, F
. ~$ D/ @! b# u8 q8 U- # Enable fallback hotspot (captive portal) in case wifi connection fails
+ u& g6 l) ?3 W2 v( h$ L" J - ap:6 c% G9 b7 Q' ~) C/ M
- ssid: "nas66.com"
{ c5 h$ ^ F4 L$ Z0 P4 o# I - password: "nas66.com"6 \ O! {) ~. O: o2 W1 h! N9 \. U
) ~1 J9 |% K" n: m% i9 I- captive_portal:6 P% P: h3 p& b' n, f
' d3 }* L6 M6 F% D. W) R- # Enable logging X- l. d) U: b$ I' e) Q
- logger:
- E6 P5 _ F4 {% \. Y" q" V) m - ( I" V; Q5 u1 Z. S: [2 q
- # Enable Home Assistant API$ e* m h4 v) w& w+ p. n& \
- api:
5 {5 t U! }6 N% N& I' ~" k0 T
4 h m& ]' [$ E( v2 w- i2c:
! q" }; W2 h* q1 E8 o - sda: D23 p0 n: t; P+ g9 Y8 y
- scl: D48 _: n1 e! ~) [* W9 k0 s
- 4 u6 ~+ C- x3 N* n2 w% H
- image: |% ]7 l I/ O* f
- - file: "logo.png"4 z: a X+ }1 ^2 u/ c3 m3 r9 M* `' F+ k
- id: my_image; B) @! r+ D8 M9 R
- resize: 128x64
" P+ `3 Y4 T5 \3 Q - ; X) W! |% s/ A9 |
- time:+ R0 l- @) p& O+ Z: s$ m
- - platform: sntp" D Q- ]0 [1 A, i" S
- id: sntp_time
; [2 e# N3 Y7 ]9 Y4 [6 i - timezone: Asia/Shanghai
. U$ O; @9 X1 A, Q0 Q
, Z6 N7 s( ~& D j9 J4 b- display:
4 M2 k! J1 V$ v9 q8 c - - platform: ssd1306_i2c
+ Q$ O$ C/ S& ]* R7 y$ r - model: "SSD1306 128x64"0 H/ W! Q" \4 V9 r% f
- id: "ssd1306"% X* k7 @9 u: d
- reset_pin: D06 L$ T8 T& t( f \
- address: 0x3C4 u! o0 v6 v$ o9 [1 B \
- rotation: 180+ @) Q Q/ t1 j+ K
- brightness: 30%; B; }: ?- `: N& ~3 B- \
- 4 j; a% k3 m( J4 y( \! n# }* q* U
- pages:3 t. M+ _) U. y) k* n, }$ J/ r
- # - id: page1
: {6 I: H7 Z: d - # lambda: |-3 U8 h( ]) ^1 D# d) c: J
- # it.printf(0, 30, id(font3), "S:%s", id(sec).state ? "ON" : "OFF");8 o) H+ Z- @, B% N& }
- $ W: E, P7 j2 `& b% g1 g
- - id: page19 X( E# u: k' S3 s
- lambda: |-: A$ Y% d/ f- T" p) b# p
- it.print(47, 0, id(font2), "Info");
: w% `/ U; y. @+ U3 h4 T. }3 ?3 }' G - it.line(0, 22, 128, 22);
4 u' v# Z) U4 A' n8 A. |, z - it.line(0, 23, 128, 23);
2 S1 U* E3 L4 g - it.line(0, 24, 128, 24); p1 F6 B x( E- ^1 T6 f
- it.printf(0, 35, id(font1), "CPU: %.0f%%", id(cpu).state);
4 w' A1 W8 @' D( {6 j! `1 {, g' Z @
9 }% f* P. g5 ], w$ O& |- d8 i- it.printf(0, 55, id(font1), "MEM:%.0f %/%.0fMB", id(memoryused).state,id(memorytotal).state);* R. F9 ]/ \# A3 ^8 ^- i
- . K3 b% k3 @: }: N9 a) E: m
- # it.rectangle(0, 0, 128, 64);1 I- c7 p! x1 o, v" N$ z
- - id: page2. i: V; h% c. I3 y% M. I+ c h
- lambda: |-' g* B. w4 Q( y
- it.print(0, 0, id(font2), "Network Speed"); d( m# D$ u! r5 f Q. t
- it.line(0, 22, 128, 22); r% ^! w$ z5 ~# }2 @: {! C
- it.line(0, 23, 128, 23);
% r! @5 @. V1 I; G0 R7 x) y - it.line(0, 24, 128, 24);6 f, R( T, n+ b: H) z8 u: y( G
- it.printf(0, 35, id(font1), "U: %.0f Kbps", id(up).state);
- a+ z% P& }1 Q7 |6 X( h; p - it.printf(0, 55, id(font1), "D: %.0f Kbps", id(down).state);) Y/ k1 u$ Z2 y) [; F
- - id: page3
3 d7 a% `* o' C- g- {! v7 l* n, y - lambda: |-
5 z4 O% ^: x; K, o - it.print(24, 0, id(font2), "Disk State ");1 t1 K- ?4 j3 w' q) a7 Q
- it.line(0, 22, 128, 22);5 l" J: E& L3 z: T
- it.line(0, 23, 128, 23);7 D9 U2 y* y* A
- it.line(0, 24, 128, 24);! [& j0 f8 T" I. B
- it.printf(0, 35, id(font1), "Use:%s%/%s", id(sdausage).state.c_str(),id(sdatotal).state.c_str());0 J% H' o8 y) _ g$ F
- it.printf(0, 55, id(font1), "Temp: %.0f °C", id(sdatemp).state);
6 ]% z8 y# R! J7 x, p) n& Y, p - 5 d9 L U5 K& b5 [! c# T. U0 J! b
- # - id: page3
) N) o& M8 Z; H3 t& h0 x9 e - # lambda: |-
# `$ U9 i3 K5 f8 { - # it.print(0, 10, id(font3), "WOW!!!");
, R7 T W. g% H; c8 ] - # - id: page4
. }3 f2 r& A# b+ `1 t( s - # lambda: |-
9 c5 e7 H5 |; w9 g - # it.print(0, 10, id(font3), "Fantastic!!");$ k, o( B( d) ~& e1 Z+ w
- # - id: page52 u7 b+ @: W# C
- # lambda: |-' `0 H1 E) s0 `+ {+ }" q
- # it.image(0, 0, id(my_image));
, L1 s1 k5 E8 p/ @+ L0 L3 y& E$ Y - - id: showtime3 ]: t# Q$ P0 W- ^3 y
- lambda: |-5 s* n! o9 \6 D2 q$ N+ H: h r
- it.print(40, 0, id(font2), "Clock");. {/ m3 z7 x7 L
- it.line(0, 22, 128, 22);
4 [' j5 T7 ^2 m+ C2 o# T1 ?. ~ - it.line(0, 23, 128, 23);
. C Y1 T2 B5 a6 h( O3 B' [9 v - it.line(0, 24, 128, 24);; n/ i4 g5 @- P, ?
- it.strftime(15, 42, id(font3), "%H:%M:%S", id(sntp_time).now());0 \; w5 C' D! O2 [8 j& r
- it.strftime(25, 26, id(font1), "%Y-%m-%d", id(sntp_time).now()); 0 X0 g( D- P5 r& o* N
- 2 G. z: m$ Q0 f) J- h) B
- S4 z/ i8 f1 s# r' Y" c- `- ota:! z) h, |" S) n& g7 Y; l
- ; @; t4 R' g. r
- sensor:( j( @$ ~- G0 [5 ~
- - platform: homeassistant/ e0 h$ l4 d, r6 _' P t
- name: "dsm load"2 I& m! L7 y7 r) w# n2 O
- id: "cpu"
7 r7 B9 [9 A, d# N* s t - entity_id: sensor.synology_dsm_cpu_load_total
/ ?6 I/ [5 Q: G$ f! R - ! r% F$ `8 T/ ?2 u6 j( W5 P8 b9 C
- - platform: homeassistant2 r. [& m7 q- G
- name: "dsm down"
+ ^. j9 ^+ d: I8 l - id: "down"$ r7 k3 {% d2 J7 H
- entity_id: sensor.synology_dsm_network_down
+ @/ k" P1 R* n6 n/ E$ J
2 E" A6 p- p, V( P( U9 e- - platform: homeassistant& X* Y" _! v- @! U, s2 j, ]& h7 I2 F- R
- name: "dsm up"5 [% O4 L/ E6 f% a/ R$ P0 v: V: T( M
- id: "up"
) `0 z9 s" M Y6 H$ t! a- P2 t - entity_id: sensor.synology_dsm_network_up
5 v. S9 }9 S+ i( Q$ ^6 \" X
. b( w( `2 N4 @0 M {5 H1 D- - platform: homeassistant0 `9 H6 q5 K# L T/ A4 U$ H8 w
- name: "memory total"
7 [6 L+ I& M6 _8 ~, d - id: "memorytotal"
, }4 Z) u, B A% G - entity_id: sensor.synology_dsm_memory_size
# _4 c: G$ R: `6 w& n8 E6 r3 Q( v - " A5 R9 A+ T; g+ w3 q# K; I
- - platform: homeassistant
9 X; G0 W4 P" B8 n0 m - name: "memory usage"8 g5 R, q8 n- X# x, G2 O: V' A
- id: "memoryavailable") F- I1 _3 w. ~: X
- entity_id: sensor.synology_dsm_memory_available_real' r( c5 q1 ?! `
5 b. H% ^, _4 z/ R3 f- - platform: homeassistant
( p6 L! [$ t# U8 k - name: "memory usage"
6 N8 L- }% d& r# q+ v# z - id: "memoryusage"
; P( z3 M- R/ c. O3 } - entity_id: sensor.synology_dsm_memory_usage_real% d- B8 _, l$ ^( d
- / D o+ z, G6 Z2 ~/ y. z
1 L; H- _; C/ m p$ F9 ]5 a# s- - name: "memoryused"1 V4 |' P+ i2 x% A9 K
- id: "memoryused"2 R8 I; \" `3 C3 h
- platform: "template"
# m/ q' e- s+ w - lambda: |-
+ g: V7 F( G$ V3 n' F" Z* i - return id(memorytotal).state - id(memoryusage).state/100*id(memorytotal).state ;
8 z0 N% P0 G. Q& z' X" u - update_interval: 30s
" ~ b. ?0 b Q: \. X# ]
4 A2 `3 o- T; r' {8 A- p: G$ O7 O- - platform: homeassistant
5 d# x# i9 r6 H; k - name: "sdatemperature"4 {$ R3 w3 `9 b: v! e) @
- id: "sdatemp"
3 t& ^0 Y3 ]6 ?- l - entity_id: sensor.synology_dsm_temperature_sda 8 U5 ]) P4 M" [, g$ T( E7 s; d2 Q! u
, g/ @. U7 p6 W8 v" ]- T$ ^9 C
+ R6 p% x0 f9 W6 Y J- text_sensor:
& o4 h( G: _, F& v - - platform: homeassistant
5 ~. U, ?! l( w/ U, Z/ a - name: "sda total"
0 E, A8 u2 t5 M) {0 G3 p% Y K - id: "sdatotal"
, G) H+ k& c5 x: h - entity_id: sensor.synology_dsm_total_size_volume_17 p5 _4 F/ X+ x9 g6 Q7 u2 H: q
- - platform: homeassistant
8 l4 O1 H! G/ t/ ?2 g0 R e - name: "sda usage"; |' G* o: w. {6 w: g7 K
- id: "sdausage"6 C: T4 `& {/ R8 k4 f
- entity_id: sensor.synology_dsm_used_space_volume_1 # z/ U) f( ] D& S/ H
; S; P# y p, C; C0 h3 [. c- binary_sensor:
' M" [9 E( h7 O5 S' `& P, s5 ~ - - platform: homeassistant: }! S9 K. j/ U$ `
- name: "sec"1 X0 l* Y4 Q1 F6 H8 P ?
- id: "sec", A" [* U7 ?- ] u. w4 U
- entity_id: input_boolean.sec_office
' J5 j, x+ Z: J% n$ |8 g+ q! E
) O; P! v0 ^ q9 h6 V6 x- interval:) H8 Q, o) F& i0 a. Q, b+ m$ z( F
- - interval: 10s
0 N2 O1 R& Q4 `; u - then:
3 W. D" n( g. i+ ?: h1 M - - display.page.show_next: ssd1306
6 B! r( ?1 ] w# S% u9 E& B - #- component.update: my_display' M% P! R, x! Q" I) I( R0 o; S
- font:5 Q4 y1 [2 ], P1 i- Q; k. }' x
- - file: 'arial.ttf'; c9 n0 ~6 w9 v' u k
- id: font18 F5 C% r0 Y; U8 P9 x% n
- size: 157 z& ]# y0 x9 B4 ?2 k
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"; X+ f' ?# j& `1 s6 V
- - file: 'arial.ttf'
' C5 Z* p/ z- p+ i* T - id: font23 S+ S5 N$ `0 r' @2 _
- size: 180 j& `( d) U6 c
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
' T5 ^7 g2 Y6 }6 b8 v5 X
- Z7 i* g3 g% M' n$ z, O" |& I
( H- J' a: \$ _+ k+ Y4 G- - file: 'arial.ttf' J, H* C8 x! i# H' ?- e1 }, I
- id: font3
2 Y* F$ V2 _' j: R8 Q - size: 23# _4 b1 j% ^$ k) B0 C6 l
- glyphs: "/!%()+,-_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
复制代码 以上是dsm源码 你稍微阅读一下即可跟着编辑$ r3 l- |* S0 e
, O4 x4 K- L2 \* q$ w
$ g; o1 P- z& _( e! e |
|