usda-hass-config/configuration.yaml

590 lines
16 KiB
YAML
Raw Normal View History

2024-10-01 14:06:39 +00:00
# Loads default set of integrations. Do not remove.
default_config:
assist_pipeline:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include_dir_merge_named scripts
scene: !include scenes.yaml
stream:
ll_hls: true
part_duration: 0.75
segment_duration: 6
mqtt:
sensor:
- state_topic: "/meyer/pos"
name: "Meyer Position Raw"
unit_of_measurement: "thou"
- state_topic: "/jc/height/log"
name: "JC Height Raw"
unit_of_measurement: "thou"
- state_topic: "/jc/angle/log"
name: "JC Angle Raw"
unit_of_measurement: "thou"
- state_topic: "/jc/feed/log"
name: "JC Feed Angle Raw"
unit_of_measurement: "degrees"
value_template: >-
{{ value | round(0) }}
- state_topic: "/scale/cup1/tare"
name: "Cup 1 Tare Weight"
unique_id: "cup1_tare_weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup2/tare"
unique_id: "cup2_tare_weight"
name: "Cup 2 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup3/tare"
unique_id: "cup3_tare_weight"
name: "Cup 3 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup4/tare"
unique_id: "cup4_tare_weight"
name: "Cup 4 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup5/tare"
unique_id: "cup5_tare_weight"
name: "Cup 5 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup6/tare"
unique_id: "cup6_tare_weight"
name: "Cup 6 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup7/tare"
unique_id: "cup7_tare_weight"
name: "Cup 7 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup8/tare"
unique_id: "cup8_tare_weight"
name: "Cup 8 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup9/tare"
unique_id: "cup9_tare_weight"
name: "Cup 9 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup10/tare"
unique_id: "cup10_tare_weight"
name: "Cup 10 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup11/tare"
unique_id: "cup11_tare_weight"
name: "Cup 11 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup12/tare"
unique_id: "cup12_tare_weight"
name: "Cup 12 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup13/tare"
unique_id: "cup13_tare_weight"
name: "Cup 13 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup14/tare"
unique_id: "cup14_tare_weight"
name: "Cup 14 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup15/tare"
unique_id: "cup15_tare_weight"
name: "Cup 15 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup16/tare"
unique_id: "cup16_tare_weight"
name: "Cup 16 Tare Weight"
unit_of_measurement: "oz"
icon: "mdi:cup-outline"
- state_topic: "/scale/cup1/general"
unique_id: "cup1_general_weight"
name: "Cup 1 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup2/general"
unique_id: "cup2_general_weight"
name: "Cup 2 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup3/general"
unique_id: "cup3_general_weight"
name: "Cup 3 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup4/general"
unique_id: "cup4_general_weight"
name: "Cup 4 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup5/general"
unique_id: "cup5_general_weight"
name: "Cup 5 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup6/general"
unique_id: "cup6_general_weight"
name: "Cup 6 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup7/general"
unique_id: "cup7_general_weight"
name: "Cup 7 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup8/general"
unique_id: "cup8_general_weight"
name: "Cup 8 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup9/general"
unique_id: "cup9_general_weight"
name: "Cup 9 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup10/general"
unique_id: "cup10_general_weight"
name: "Cup 10 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup11/general"
unique_id: "cup11_general_weight"
name: "Cup 11 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup12/general"
name: "Cup 12 General Sample Weight"
unique_id: "cup12_general_weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup13/general"
unique_id: "cup13_general_weight"
name: "Cup 13 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup14/general"
unique_id: "cup14_general_weight"
name: "Cup 14 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup15/general"
unique_id: "cup15_general_weight"
name: "Cup 15 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup16/general"
unique_id: "cup16_general_weight"
name: "Cup 16 General Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup1/half"
unique_id: "cup1_half_weight"
name: "Cup 1 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup2/half"
unique_id: "cup2_half_weight"
name: "Cup 2 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup3/half"
unique_id: "cup3_half_weight"
name: "Cup 3 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup4/half"
unique_id: "cup4_half_weight"
name: "Cup 4 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup5/half"
unique_id: "cup5_half_weight"
name: "Cup 5 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup6/half"
unique_id: "cup6_half_weight"
name: "Cup 6 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup7/half"
unique_id: "cup7_half_weight"
name: "Cup 7 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup8/half"
name: "Cup 8 Half Sample Weight"
unique_id: "cup8_half_weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup9/half"
unique_id: "cup9_half_weight"
name: "Cup 9 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup10/half"
unique_id: "cup10_half_weight"
name: "Cup 10 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup11/half"
unique_id: "cup11_half_weight"
name: "Cup 11 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup12/half"
unique_id: "cup12_half_weight"
name: "Cup 12 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup13/half"
unique_id: "cup13_half_weight"
name: "Cup 13 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup14/half"
unique_id: "cup14_half_weight"
name: "Cup 14 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup15/half"
unique_id: "cup15_half_weight"
name: "Cup 15 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/scale/cup16/half"
unique_id: "cup16_half_weight"
name: "Cup 16 Half Sample Weight"
unit_of_measurement: "oz"
icon: "mdi:cup"
- state_topic: "/sheller/bin1"
name: "Sheller Bin 1 Weight"
unique_id: "bin1_weight"
unit_of_measurement: "lb"
- state_topic: "/sheller/bin2"
name: "Sheller Bin 2 Weight"
unique_id: "bin2_weight"
unit_of_measurement: "lb"
- state_topic: "/sheller/bin3"
name: "Sheller Bin 3 Weight"
unique_id: "bin3_weight"
unit_of_measurement: "lb"
- state_topic: "/sheller/bin4"
name: "Sheller Bin 4 Weight"
unique_id: "bin4_weight"
unit_of_measurement: "lb"
- state_topic: "/half_yield"
unique_id: "half_yield_sample"
name: "Latest Half Yield Sample"
unit_of_measurement: "%"
number:
- command_topic: "/jc/angle"
name: "JC Angle"
unit_of_measurement: "thou"
min: -500
max: 500
- command_topic: "/jc/height"
name: "JC Height"
unique_id: "jc_height"
unit_of_measurement: "thou"
min: 0
max: 1665
- command_topic: "/jc/feed"
name: "JC Feed Angle"
unit_of_measurement: "degrees"
min: 0
max: 90
- command_topic: "/jc/feed_time"
name: "JC Feed Time"
unit_of_measurement: "seconds"
min: 5
max: 90
- command_topic: "/sheller/angle"
name: "Sheller Angle"
unique_id: "sheller_angle"
unit_of_measurement: "degrees"
min: 2.5
max: 5.5
step: 0.5
switch:
- command_topic: "/jc/use_feed_time"
name: "JC Limit Feed Duration"
sensor:
- platform: tcp
host: 172.22.113.200
port: 23
payload: ""
name: "Precision Scale"
scan_interval:
seconds: 0.1
value_template: >-
{% if not value | contains('M') %}
{% set temp_value = value | regex_findall_index('\d+\.\d+(?=oz)') | float %}
{% if value | contains('-') %}
{% set temp_value = temp_value * -1 %}
{% endif %}
{{ temp_value | round(3) }}
{% else %}
{{ states("sensor.precision_scale") | round(3) }}
{% endif %}
unit_of_measurement: "oz"
- platform: tcp
host: 172.22.113.200
port: 26
payload: ""
name: "Sheller Scale"
scan_interval:
seconds: 0.1
value_template: >-
{% if value | contains('S') %}
{% set temp_value = value | regex_findall_index('\d+\.\d+(?= lb)') | float %}
{% if value | contains('-') %}
{% set temp_value = temp_value * -1 %}
{% endif %}
{{ ((temp_value * 50 - (0.5 if temp_value > 0 else -0.5)) | int | float / 50) }}
{% else %}
{{ states("sensor.sheller_scale") }}
{% endif %}
unit_of_measurement: "lb"
- platform: tcp
host: 172.22.113.201
port: 23
payload: ""
name: "Moisture Scale"
scan_interval:
seconds: 1
value_template: >-
{% if value | contains('S') %}
{% set temp_value = value | regex_findall_index('\d+(?=, g)') | float %}
{% if value | contains('-') %}
{% set temp_value = temp_value * -1 %}
{% endif %}
{{ temp_value }}
{% else %}
{{ states("sensor.moisture_scale") }}
{% endif %}
unit_of_measurement: "g"
- platform: serial
serial_port: /dev/steinlite
name: "steinlite"
- platform: pid_controller
name: paddle_pid
enabled: '{{ states("switch.shellyplus1_cc7b5c0d316c_switch_0") }}'
set_point: '{{ states("input_number.sheller_paddle_rpm") }}'
entity_id: sensor.shelling_machine_paddle_rpm
precision: 0
minimum: 0
maximum: 253
sample_time: 1
invert: true
p: 40
i: 0
d: 0
- platform: pid_controller
name: drum_pid
enabled: '{{ states("switch.shellyplus1_cc7b5c0d0eb4_switch_0") }}'
set_point: '{{ states("input_number.sheller_drum_rpm") }}'
entity_id: sensor.shelling_machine_drum_rpm
precision: 0
minimum: 0
maximum: 253
sample_time: 2.5
invert: true
p: 5
i: 0
d: 0
template:
- sensor:
- name: Steinlite Moisture Content
unique_id: steinlite_moisture
unit_of_measurement: "%"
state: >
{% set sensor_val = states('sensor.steinlite') %}
{% set moisture_match = sensor_val.find('Moisture: ') %}
{% if moisture_match != -1 %}
{% set moisture_value = sensor_val[moisture_match + 10:sensor_val.find('%',moisture_match)] %}
{% if moisture_value %}
{% set state = moisture_value | float %}
{% endif %}
{% endif %}
{% if state is defined %} {{ state }}
{% else %} {{ this.state }}
{% endif %}
- name: Steinlite Sample Temperature
unique_id: steinlite_temperature
unit_of_measurement: "°F"
state: >
{% set sensor_val = states('sensor.steinlite') %}
{% set temp_match = sensor_val.find('Gr Temp: ') %}
{% if temp_match != -1 %}
{% set temp_value = sensor_val[temp_match + 9:sensor_val.find(' Deg F',temp_match)] %}
{% if temp_value %}
{% set state = temp_value | int %}
{% endif %}
{% endif %}
{% if state is defined %} {{ state }}
{% else %} {{ this.state }}
{% endif %}
input_number:
moisture_cold_soak_time:
name: Cold Soak Time
min: 0
max: 75
unit_of_measurement: hours
moisture_hot_soak_time:
name: Hot Soak Time
min: 0
max: 45
unit_of_measurement: minutes
moisture_ambient_temperature:
name: Ambient Temperature
min: 68
max: 74
unit_of_measurement: °F
moisture_hot_bath_temperature:
name: Hot Soak Temperature
min: 180
max: 200
unit_of_measurement: °F
jc_pecan_grade:
name: Pecan Size
min: 250
max: 1250
mode: box
step: 0.5
icon: mdi:peanut
unit_of_measurement: thou
jc_crush_amount:
name: Crush Amount
min: 31.25
max: 93.75
step: 31.25
unit_of_measurement: thou
jc_hopper_angle:
name: Angle
min: 0
max: 90
step: 1
icon: mdi:angle-acute
unit_of_measurement: °
jc_plate_frequency:
name: Impacting Plate Frequency
min: 30
max: 60
step: 0.1
unit_of_measurement: Hz
jc_feeder_frequency:
name: Vibratory Feeder Frequency
min: 30
max: 90
step: 0.1
unit_of_measurement: Hz
sheller_paddle_rpm:
name: Paddle Shaft RPM
min: 400
max: 800
step: 50
unit_of_measurement: RPM
sheller_drum_rpm:
name: Drum RPM
min: 30
max: 40
step: 2
unit_of_measurement: RPM
sheller_ring_gap:
name: Sheller Ring Gap
min: 0
max: 1.125
mode: box
unit_of_measurement: in
meyer_preload_stiffness:
name: Preload Spring Stiffness
min: 1800
max: 2200
mode: box
unit_of_measurement: N/m
meyer_motor_speed:
name: Motor Speed
min: 30
max: 60
step: 0.1
unit_of_measurement: Hz
batch_weight:
name: Batch Weight
unit_of_measurement: lb
min: 0
max: 45
step: 0.01
mode: box
remote_homeassistant:
instances:
shell_command:
lsdev: ls /dev/
#ltss:
# db_url: postgresql://postgres@factory.uga.edu/postgres
# chunk_time_interval: 86400
# commit_interval: 5
# include:
# domains:
# - sensor
# - number
# - input_number
# exclude:
# entity_globs:
# - 'sensor.sun*'
mqtt_eventstream:
publish_topic: pecan/hass
modbus:
- name: modbus_hub
type: tcp
host: 192.168.1.190
port: 502
sensors:
- name: JC Status
slave: 1
address: 680
input_type: holding
recorder:
db_url: !secret connection_string
auto_purge: false