Skip to content

Commit

Permalink
from upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Muench committed May 12, 2022
2 parents 3333369 + 13f26ef commit 8fc82e2
Show file tree
Hide file tree
Showing 12 changed files with 214 additions and 6 deletions.
6 changes: 6 additions & 0 deletions .luacheckrc
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ stds.ucm = {
},
ai4 = {
fields = {'read_volts', 'read_milliamps', 'err_to_str'}
},
di7 = {
fields = {
'is_closed', 'is_opened', 'read_counter',
'set_counter', 'set_debounce', 'err_to_str'
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion analog_io_modules/pressure_sensor/manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Analog pressure sensor based on voltage signal.
icon: enapter-gauge

communication_module:
product: ENP-AI4
product: ENP-AI4-50V
lua_file: firmware.lua

properties:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
blueprint_spec: device/1.0

display_name: Pylontech Battery US200
display_name: Pylontech Battery US200 (CAN)
icon: enapter-battery-storage

communication_module:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
blueprint_spec: device/1.0

display_name: Pylontech Battery US2000
display_name: Pylontech Battery US2000 (RS485)
icon: enapter-battery-storage

communication_module:
Expand Down
2 changes: 1 addition & 1 deletion fuel_cells/intelligent_energy_fcm_80x_rl6/manifest.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
blueprint_spec: device/1.0

display_name: Control Relay for Intelligent Energy FCM 800 Series
icon: enapter-module-din-1
icon: enapter-module-din-2

communication_module:
product: ENP-RL6
Expand Down
14 changes: 14 additions & 0 deletions relays/di7_alerts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Enapter Digital Input Module ENP-DI7

This [Enapter Device Blueprint](https://github.com/Enapter/marketplace#blue_book-enapter-device-blueprints) integrates **[ENP-DI7 module](https://handbook.enapter.com/modules/ENP-DI7/ENP-DI7.html)** and allows you to track digital inputs' states with alerts.

## Connect to Enapter

- Sign up to the Enapter Cloud using the [Web](https://cloud.enapter.com/) or mobile app ([iOS](https://apps.apple.com/app/id1388329910), [Android](https://play.google.com/store/apps/details?id=com.enapter&hl=en)).
- Use the [Enapter ENP-DI7](https://handbook.enapter.com/modules/ENP-DI7/ENP-DI7.html) module for physical connection. See [connection examples](https://handbook.enapter.com/modules/ENP-DI7/ENP-DI7.html#connection-example) in the module manual.
- [Add ENP-DI7 to your site](https://handbook.enapter.com/software/mobile/android_mobile_app.html#adding-sites-and-devices) using the mobile app.
- [Upload](https://developers.enapter.com/docs/tutorial/uploading-blueprint/) this blueprint to ENP-DI7.

## References

- [Datasheet for ENP-DI7](https://handbook.enapter.com/modules/ENP-DI7/downloads/ENP-DI7_Datasheet_EN_v1.pdf)
42 changes: 42 additions & 0 deletions relays/di7_alerts/firmware.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
function main()
scheduler.add(30000, send_properties)
scheduler.add(1000, send_telemetry)
end

function send_properties()
enapter.send_properties({ vendor = 'Enapter', model = 'ENP-DI7', description ='Enapter ENP-DI7 with input alerts'})
end

function send_telemetry ()
local telemetry = {}
local alerts = {}
local status = "ok"

for id = 1, 7 do
local relay_status, err = di7.is_closed(id)
if relay_status ~= nil then
telemetry["di"..id.."_closed"] = relay_status
if relay_status == true then
table.insert(alerts,"DI"..id.."_closed_alert")
end
else
status = "error"
enapter.log("Reading closed di"..id.." failed: "..di7.err_to_str(err))
end

local counter, reset_time, err = di7.read_counter(id)
if counter ~= nil then
telemetry["di"..id.."_counter"] = counter
telemetry["di"..id.."_reset_time"] = reset_time
else
status = "error"
enapter.log("Reading counter di"..id.." failed: "..di7.err_to_str(err))
end
end

telemetry["status"] = status
telemetry["alerts"] = alerts
enapter.send_telemetry(telemetry)
end

main()
146 changes: 146 additions & 0 deletions relays/di7_alerts/manifest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
blueprint_spec: device/1.0

display_name: ENP-DI7 with alerts
description: Enapter ENP-DI7 with input alerts
icon: enapter-module-din-2

communication_module:
product: ENP-DI7
lua_file: firmware.lua

properties:
vendor:
type: string
display_name: Vendor
model:
type: string
display_name: Model
description:
type: string
display_name: Description

telemetry:
status:
display_name: Status
type: string
enum:
- ok
- error
di1_closed:
display_name: DI1 is closed
type: boolean
di2_closed:
display_name: DI2 is closed
type: boolean
di3_closed:
display_name: DI3 is closed
type: boolean
di4_closed:
display_name: DI4 is closed
type: boolean
di5_closed:
display_name: DI5 is closed
type: boolean
di6_closed:
display_name: DI6 is closed
type: boolean
di7_closed:
display_name: DI7 is closed
type: boolean
di1_counter:
display_name: DI1 counter
type: integer
di2_counter:
display_name: DI2 counter
type: integer
di3_counter:
display_name: DI3 counter
type: integer
di4_counter:
display_name: DI4 counter
type: integer
di5_counter:
display_name: DI5 counter
type: integer
di6_counter:
display_name: DI6 counter
type: integer
di7_counter:
display_name: DI7 counter
type: integer
di1_reset_time:
display_name: DI1 reset time
type: integer
unit: s
di2_reset_time:
display_name: DI2 reset time
type: integer
unit: s
di3_reset_time:
display_name: DI3 reset time
type: integer
unit: s
di4_reset_time:
display_name: DI4 reset time
type: integer
unit: s
di5_reset_time:
display_name: DI5 reset time
type: integer
unit: s
di6_reset_time:
display_name: DI6 reset time
type: integer
unit: s
di7_reset_time:
display_name: DI7 reset time
type: integer
unit: s

alerts:
DI1_closed_alert:
display_name: DI1 is closed
description: Digital input 1 is closed
severity: info
DI2_closed_alert:
display_name: DI2 is closed
description: Digital input 2 is closed
severity: info
DI3_closed_alert:
display_name: DI3 is closed
description: Digital input 3 is closed
severity: info
DI4_closed_alert:
display_name: DI4 is closed
description: Digital input 4 is closed
severity: info
DI5_closed_alert:
display_name: DI5 is closed
description: Digital input 5 is closed
severity: info
DI6_closed_alert:
display_name: DI6 is closed
description: Digital input 6 is closed
severity: info
DI7_closed_alert:
display_name: DI7 is closed
description: Digital input 7 is closed
severity: info

.cloud:
category: Sensors
mobile_charts:
- di1_counter
- di2_counter
- di3_counter
- di4_counter
- di5_counter
- di6_counter
- di7_counter
- di1_reset_time
- di2_reset_time
- di3_reset_time
- di4_reset_time
- di5_reset_time
- di6_reset_time
- di7_reset_time
4 changes: 2 additions & 2 deletions relays/no_contactor/manifest.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
blueprint_spec: device/1.0

display_name: NC Contactor Management
description: Manages single NC contactor using ENP-RL6.
display_name: NO Contactor Management
description: Manages single NO contactor using ENP-RL6.
icon: enapter-load

communication_module:
Expand Down
File renamed without changes.

0 comments on commit 8fc82e2

Please sign in to comment.