From c31b8831afbb43e5f3c231cd98044b1d96f921e2 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 28 Apr 2025 15:28:48 -0400 Subject: [PATCH] refactor config yaml into new files --- input_numbers/batch.yaml | 7 + input_numbers/jc.yaml | 34 + input_numbers/meyer.yaml | 16 + input_numbers/moisture.yaml | 20 + input_numbers/pid.yaml | 27 + input_numbers/sheller.yaml | 40 ++ intents/SetMachineSpeed.yaml | 7 + modbus/jc.yaml | 27 + modbus/meyer.yaml | 26 + modbus/moisttech.yaml | 24 + mqtt_entities/number/jc.yaml | 33 + mqtt_entities/number/sheller.yaml | 7 + mqtt_entities/sensor/jc.yaml | 29 + mqtt_entities/sensor/meyer.yaml | 4 + mqtt_entities/sensor/scales.yaml | 679 ++++++++++++++++++++ mqtt_entities/sensor/sheller.yaml | 20 + mqtt_entities/switch/jc.yaml | 3 + tcp_sensors/moisture_scale.yaml | 18 + tcp_sensors/precision_scale.yaml | 18 + tcp_sensors/sheller_scale.yaml | 18 + tcp_sensors/steinlite.yaml | 17 + template_sensors/steinlite_moisture.yaml | 16 + template_sensors/steinlite_temperature.yaml | 16 + 23 files changed, 1106 insertions(+) create mode 100644 input_numbers/batch.yaml create mode 100644 input_numbers/jc.yaml create mode 100644 input_numbers/meyer.yaml create mode 100644 input_numbers/moisture.yaml create mode 100644 input_numbers/pid.yaml create mode 100644 input_numbers/sheller.yaml create mode 100644 intents/SetMachineSpeed.yaml create mode 100644 modbus/jc.yaml create mode 100644 modbus/meyer.yaml create mode 100644 modbus/moisttech.yaml create mode 100644 mqtt_entities/number/jc.yaml create mode 100644 mqtt_entities/number/sheller.yaml create mode 100644 mqtt_entities/sensor/jc.yaml create mode 100644 mqtt_entities/sensor/meyer.yaml create mode 100644 mqtt_entities/sensor/scales.yaml create mode 100644 mqtt_entities/sensor/sheller.yaml create mode 100644 mqtt_entities/switch/jc.yaml create mode 100644 tcp_sensors/moisture_scale.yaml create mode 100644 tcp_sensors/precision_scale.yaml create mode 100644 tcp_sensors/sheller_scale.yaml create mode 100644 tcp_sensors/steinlite.yaml create mode 100644 template_sensors/steinlite_moisture.yaml create mode 100644 template_sensors/steinlite_temperature.yaml diff --git a/input_numbers/batch.yaml b/input_numbers/batch.yaml new file mode 100644 index 0000000..150ceac --- /dev/null +++ b/input_numbers/batch.yaml @@ -0,0 +1,7 @@ +batch_weight: + name: Batch Weight + unit_of_measurement: lb + min: 0 + max: 45 + step: 0.01 + mode: box diff --git a/input_numbers/jc.yaml b/input_numbers/jc.yaml new file mode 100644 index 0000000..711ceb6 --- /dev/null +++ b/input_numbers/jc.yaml @@ -0,0 +1,34 @@ +jc_pecan_grade: + name: Pecan Size + min: 250 + max: 1250 + mode: box + step: 5 + icon: mdi:peanut + unit_of_measurement: thou +jc_crush_amount: + name: Crush Amount + min: 30 + max: 120 + step: 10 + mode: box + 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: 1 + unit_of_measurement: Hz +jc_feeder_frequency: + name: Vibratory Feeder Frequency + min: 0 + max: 100 + step: 0.1 + unit_of_measurement: "%" diff --git a/input_numbers/meyer.yaml b/input_numbers/meyer.yaml new file mode 100644 index 0000000..61897eb --- /dev/null +++ b/input_numbers/meyer.yaml @@ -0,0 +1,16 @@ +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: 1 + unit_of_measurement: Hz +meyer_screw_displacement: + name: Setscrew Displacement + min: -350 + max: -290 diff --git a/input_numbers/moisture.yaml b/input_numbers/moisture.yaml new file mode 100644 index 0000000..34a7039 --- /dev/null +++ b/input_numbers/moisture.yaml @@ -0,0 +1,20 @@ +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 diff --git a/input_numbers/pid.yaml b/input_numbers/pid.yaml new file mode 100644 index 0000000..da534be --- /dev/null +++ b/input_numbers/pid.yaml @@ -0,0 +1,27 @@ +proportional: + name: Proportional + initial: 1 + min: 0 + max: 15 + step: 0.01 + +integral: + name: Integral + initial: 0 + min: 0 + max: 2 + step: 0.001 + +derivative: + name: Derivative + initial: 0 + min: 0 + max: 2 + step: 0.001 + +windup: + name: Windup + initial: 0 + min: 0 + max: 100 + step: 1 diff --git a/input_numbers/sheller.yaml b/input_numbers/sheller.yaml new file mode 100644 index 0000000..cc44b23 --- /dev/null +++ b/input_numbers/sheller.yaml @@ -0,0 +1,40 @@ +sheller_paddle_rpm: + name: Paddle Shaft RPM + min: 400 + max: 800 + step: 50 + unit_of_measurement: RPM +sheller_paddle_prev_rpm_error: + name: Paddle RPM Previous Error + min: -800 + max: 800 + step: 0.5 + unit_of_measurement: RPM +sheller_paddle_prev_adjustment: + name: Paddle RPM Previous Adjustment + min: -800 + max: 800 + step: 1 +sheller_drum_rpm: + name: Drum RPM + min: 25 + max: 35 + step: 5 + unit_of_measurement: RPM +sheller_drum_prev_rpm_error: + name: Drum RPM Previous Error + min: -35 + max: 35 + step: 0.1 + unit_of_measurement: RPM +sheller_drum_prev_adjustment: + name: Drum RPM Previous Adjustment + min: -35 + max: 35 + step: 0.01 +sheller_ring_gap: + name: Sheller Ring Gap + min: 0 + max: 1.125 + mode: box + unit_of_measurement: in diff --git a/intents/SetMachineSpeed.yaml b/intents/SetMachineSpeed.yaml new file mode 100644 index 0000000..176c72f --- /dev/null +++ b/intents/SetMachineSpeed.yaml @@ -0,0 +1,7 @@ +action: + action: "input_number.set_value" + data: + entity_id: "{{ machine }}" + value: "{{ speed }}" + speech: + text: "Machine has been set to {{ speed }} hertz" diff --git a/modbus/jc.yaml b/modbus/jc.yaml new file mode 100644 index 0000000..9aae1e9 --- /dev/null +++ b/modbus/jc.yaml @@ -0,0 +1,27 @@ +- name: "JC VFD" + type: rtuovertcp + host: "192.168.1.190" + port: 502 + delay: 5 + message_wait_milliseconds: 45 + timeout: 5 + + sensors: + - name: "JC VFD Present Frequency" + slave: 1 + address: 681 # Register for control word + scale: 0.01 + + - name: "JC Status Word" + slave: 1 + scan_interval: 1 + address: 680 # Register for frequency setpoint + + switches: + - name: "JC Run Control" + scan_interval: 1 + slave: 1 + address: 682 + command_on: 7 + command_off: 0 + unique_id: jc_enable diff --git a/modbus/meyer.yaml b/modbus/meyer.yaml new file mode 100644 index 0000000..ef32396 --- /dev/null +++ b/modbus/meyer.yaml @@ -0,0 +1,26 @@ +- name: "Meyer VFD" + type: rtuovertcp + host: "192.168.1.175" # IP address of your Modbus device + port: 502 # Default Modbus TCP port + delay: 5 + message_wait_milliseconds: 45 + timeout: 5 + + # Sensors for reading and controlling the inverter + sensors: + - name: "VFD Present Frequency" + slave: 1 + address: 0 # Register for control word + scale: 0.01 + + - name: "Frequency Setpoint" + slave: 1 + scan_interval: 1 + address: 2002 # Register for frequency setpoint + + switches: + - name: "Run Control" + scan_interval: 1 + slave: 1 + address: 2000 + unique_id: meyer_ diff --git a/modbus/moisttech.yaml b/modbus/moisttech.yaml new file mode 100644 index 0000000..1a0a5c6 --- /dev/null +++ b/modbus/moisttech.yaml @@ -0,0 +1,24 @@ +- name: "MoistTech IR Gauge" + type: tcp + host: "192.168.1.151" + port: 502 + delay: 5 + + sensors: + - name: "JC MoistTech Pecan Moisture" + scan_interval: 1 + slave: 1 + address: 256 + data_type: custom + count: 9 + structure: "- + {{ value | round(0) }} + unique_id: "jc-feed-angle" + +- state_topic: "/jc/feedrate/count/" + name: "JC Throughput Count" + unit_of_measurement: "Pecan(s)" + value_template: >- + {{ value | round(0) }} + unique_id: "jc-feed-rate" + +- state_topic: "/pi_controller/output" + name: "JC PI Controller Output" + value_template: >- + {{ value | round(2) }} + unique_id: "jc-pi-controller-output" diff --git a/mqtt_entities/sensor/meyer.yaml b/mqtt_entities/sensor/meyer.yaml new file mode 100644 index 0000000..48b534c --- /dev/null +++ b/mqtt_entities/sensor/meyer.yaml @@ -0,0 +1,4 @@ +- state_topic: "/meyer/pos" + name: "Meyer Position Raw" + unit_of_measurement: "thou" + unique_id: "meyer-position" diff --git a/mqtt_entities/sensor/scales.yaml b/mqtt_entities/sensor/scales.yaml new file mode 100644 index 0000000..8c96ddf --- /dev/null +++ b/mqtt_entities/sensor/scales.yaml @@ -0,0 +1,679 @@ +- state_topic: "/scale/sample1/tare" + name: "Sample 1 Tare Weight" + unique_id: "sample1_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample1/wet" + name: "Sample 1 Wet Weight" + unique_id: "sample1_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample1/dry" + name: "Sample 1 Dry Weight" + unique_id: "sample1_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample2/tare" + name: "Sample 2 Tare Weight" + unique_id: "sample2_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample2/wet" + name: "Sample 2 Wet Weight" + unique_id: "sample2_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample2/dry" + name: "Sample 2 Dry Weight" + unique_id: "sample2_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample3/tare" + name: "Sample 3 Tare Weight" + unique_id: "sample3_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample3/wet" + name: "Sample 3 Wet Weight" + unique_id: "sample3_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample3/dry" + name: "Sample 3 Dry Weight" + unique_id: "sample3_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample4/tare" + name: "Sample 4 Tare Weight" + unique_id: "sample4_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample4/wet" + name: "Sample 4 Wet Weight" + unique_id: "sample4_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample4/dry" + name: "Sample 4 Dry Weight" + unique_id: "sample4_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample5/tare" + name: "Sample 5 Tare Weight" + unique_id: "sample5_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample5/wet" + name: "Sample 5 Wet Weight" + unique_id: "sample5_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample5/dry" + name: "Sample 5 Dry Weight" + unique_id: "sample5_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample6/tare" + name: "Sample 6 Tare Weight" + unique_id: "sample6_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample6/wet" + name: "Sample 6 Wet Weight" + unique_id: "sample6_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample6/dry" + name: "Sample 6 Dry Weight" + unique_id: "sample6_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample7/tare" + name: "Sample 7 Tare Weight" + unique_id: "sample7_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample7/wet" + name: "Sample 7 Wet Weight" + unique_id: "sample7_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample7/dry" + name: "Sample 7 Dry Weight" + unique_id: "sample7_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample8/tare" + name: "Sample 8 Tare Weight" + unique_id: "sample8_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample8/wet" + name: "Sample 8 Wet Weight" + unique_id: "sample8_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample8/dry" + name: "Sample 8 Dry Weight" + unique_id: "sample8_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample9/tare" + name: "Sample 9 Tare Weight" + unique_id: "sample9_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample9/wet" + name: "Sample 9 Wet Weight" + unique_id: "sample9_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample9/dry" + name: "Sample 9 Dry Weight" + unique_id: "sample9_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample10/tare" + name: "Sample 10 Tare Weight" + unique_id: "sample10_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample10/wet" + name: "Sample 10 Wet Weight" + unique_id: "sample10_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample10/dry" + name: "Sample 10 Dry Weight" + unique_id: "sample10_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample11/tare" + name: "Sample 11 Tare Weight" + unique_id: "sample11_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample11/wet" + name: "Sample 11 Wet Weight" + unique_id: "sample11_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample11/dry" + name: "Sample 11 Dry Weight" + unique_id: "sample11_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample12/tare" + name: "Sample 12 Tare Weight" + unique_id: "sample12_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample12/wet" + name: "Sample 12 Wet Weight" + unique_id: "sample12_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample12/dry" + name: "Sample 12 Dry Weight" + unique_id: "sample12_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample13/tare" + name: "Sample 13 Tare Weight" + unique_id: "sample13_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample13/wet" + name: "Sample 13 Wet Weight" + unique_id: "sample13_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample13/dry" + name: "Sample 13 Dry Weight" + unique_id: "sample13_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample14/tare" + name: "Sample 14 Tare Weight" + unique_id: "sample14_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample14/wet" + name: "Sample 14 Wet Weight" + unique_id: "sample14_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample14/dry" + name: "Sample 14 Dry Weight" + unique_id: "sample14_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample15/tare" + name: "Sample 15 Tare Weight" + unique_id: "sample15_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample15/wet" + name: "Sample 15 Wet Weight" + unique_id: "sample15_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample15/dry" + name: "Sample 15 Dry Weight" + unique_id: "sample15_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample16/tare" + name: "Sample 16 Tare Weight" + unique_id: "sample16_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample16/wet" + name: "Sample 16 Wet Weight" + unique_id: "sample16_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample16/dry" + name: "Sample 16 Dry Weight" + unique_id: "sample16_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample17/tare" + name: "Sample 17 Tare Weight" + unique_id: "sample17_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample17/wet" + name: "Sample 17 Wet Weight" + unique_id: "sample17_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample17/dry" + name: "Sample 17 Dry Weight" + unique_id: "sample17_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample18/tare" + name: "Sample 18 Tare Weight" + unique_id: "sample18_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample18/wet" + name: "Sample 18 Wet Weight" + unique_id: "sample18_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample18/dry" + name: "Sample 18 Dry Weight" + unique_id: "sample18_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample19/tare" + name: "Sample 19 Tare Weight" + unique_id: "sample19_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample19/wet" + name: "Sample 19 Wet Weight" + unique_id: "sample19_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample19/dry" + name: "Sample 19 Dry Weight" + unique_id: "sample19_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample20/tare" + name: "Sample 20 Tare Weight" + unique_id: "sample20_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample20/wet" + name: "Sample 20 Wet Weight" + unique_id: "sample20_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample20/dry" + name: "Sample 20 Dry Weight" + unique_id: "sample20_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample21/tare" + name: "Sample 21 Tare Weight" + unique_id: "sample21_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample21/wet" + name: "Sample 21 Wet Weight" + unique_id: "sample21_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample21/dry" + name: "Sample 21 Dry Weight" + unique_id: "sample21_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample22/tare" + name: "Sample 22 Tare Weight" + unique_id: "sample22_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample22/wet" + name: "Sample 22 Wet Weight" + unique_id: "sample22_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample22/dry" + name: "Sample 22 Dry Weight" + unique_id: "sample22_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample23/tare" + name: "Sample 23 Tare Weight" + unique_id: "sample23_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample23/wet" + name: "Sample 23 Wet Weight" + unique_id: "sample23_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample23/dry" + name: "Sample 23 Dry Weight" + unique_id: "sample23_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample24/tare" + name: "Sample 24 Tare Weight" + unique_id: "sample24_tare_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample24/wet" + name: "Sample 24 Wet Weight" + unique_id: "sample24_wet_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- state_topic: "/scale/sample24/dry" + name: "Sample 24 Dry Weight" + unique_id: "sample24_dry_weight" + unit_of_measurement: "oz" + icon: "mdi:scale" + +- 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: "/moisture_sample" + unique_id: "moisture_sample" + name: "Latest Moisture Sample (By Weight)" + unit_of_measurement: "%" diff --git a/mqtt_entities/sensor/sheller.yaml b/mqtt_entities/sensor/sheller.yaml new file mode 100644 index 0000000..660ab97 --- /dev/null +++ b/mqtt_entities/sensor/sheller.yaml @@ -0,0 +1,20 @@ +- 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: "%" diff --git a/mqtt_entities/switch/jc.yaml b/mqtt_entities/switch/jc.yaml new file mode 100644 index 0000000..11d3057 --- /dev/null +++ b/mqtt_entities/switch/jc.yaml @@ -0,0 +1,3 @@ +- command_topic: "/jc/use_feed_time" + name: "JC Limit Feed Duration" + unique_id: "jc-limit-feed-for-duration" diff --git a/tcp_sensors/moisture_scale.yaml b/tcp_sensors/moisture_scale.yaml new file mode 100644 index 0000000..3873bbf --- /dev/null +++ b/tcp_sensors/moisture_scale.yaml @@ -0,0 +1,18 @@ +platform: tcp +host: 192.168.1.22 +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" diff --git a/tcp_sensors/precision_scale.yaml b/tcp_sensors/precision_scale.yaml new file mode 100644 index 0000000..c7737f1 --- /dev/null +++ b/tcp_sensors/precision_scale.yaml @@ -0,0 +1,18 @@ +platform: tcp +host: 192.168.1.21 +port: 23 +payload: "" +name: "Precision Scale" +scan_interval: + seconds: 0.3 +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(4) }} + {% else %} + {{ states("sensor.precision_scale") | round(4) }} + {% endif %} +unit_of_measurement: "oz" diff --git a/tcp_sensors/sheller_scale.yaml b/tcp_sensors/sheller_scale.yaml new file mode 100644 index 0000000..fc63e0f --- /dev/null +++ b/tcp_sensors/sheller_scale.yaml @@ -0,0 +1,18 @@ +platform: tcp +host: 192.168.1.21 +port: 26 +payload: "" +name: "Sheller Scale" +scan_interval: + seconds: 0.3 +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" diff --git a/tcp_sensors/steinlite.yaml b/tcp_sensors/steinlite.yaml new file mode 100644 index 0000000..149ba71 --- /dev/null +++ b/tcp_sensors/steinlite.yaml @@ -0,0 +1,17 @@ +platform: serial +serial_port: /dev/ttyS1 +name: "steinlite" +value_template: >- + {% if value | contains(' ') %} + {% if states("sensor.steinlite") | contains("Unknown") %} + {{ value }} + {% else %} + {% if value | contains('Moisture') %} + {{ value }} + {% else %} + {{ states("sensor.steinlite") + " " + value }} + {% endif %} + {% endif %} + {% else %} + {{ states("sensor.steinlite") }} + {% endif %} diff --git a/template_sensors/steinlite_moisture.yaml b/template_sensors/steinlite_moisture.yaml new file mode 100644 index 0000000..9b94f1b --- /dev/null +++ b/template_sensors/steinlite_moisture.yaml @@ -0,0 +1,16 @@ +- 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 %} diff --git a/template_sensors/steinlite_temperature.yaml b/template_sensors/steinlite_temperature.yaml new file mode 100644 index 0000000..dadc36a --- /dev/null +++ b/template_sensors/steinlite_temperature.yaml @@ -0,0 +1,16 @@ +- 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 %}