3 Commits 1b56094afa ... c6fd56561b

Auteur SHA1 Message Date
  Patryk M. Gutowski c6fd56561b esphome relay 6ch il y a 7 mois
  Patryk M. Gutowski 8959289041 new esphome config style il y a 7 mois
  Patryk M. Gutowski 7b347ba3c7 Added LSC Plug 03 il y a 1 an
3 fichiers modifiés avec 414 ajouts et 1 suppressions
  1. 2 1
      bath_basic.yaml
  2. 172 0
      bl-relay6-01.yaml
  3. 240 0
      lscp03.yaml

+ 2 - 1
bath_basic.yaml

@@ -12,7 +12,8 @@ packages:
 # Basic Config
 esphome:
   name: $devicename
-  platform: ESP8266
+
+esp8266:
   board: esp8285
 
 web_server:

+ 172 - 0
bl-relay6-01.yaml

@@ -0,0 +1,172 @@
+substitutions:
+  devicename: bl-relay6-01
+  low_devicenaeme: bl-relay6-01
+  friendly_name: Waveshare Relay Board Garaz Podlewanie
+  area: "Garage"
+
+esphome:
+  name: ${devicename}
+  friendly_name: ${friendly_name}
+  area: ${area}
+  # name_add_mac_suffix: true
+  # project:
+  #   name: waveshare.esp32-s3-relay-6ch
+  #   version: 1.0.0
+
+esp32:
+  board: esp32-s3-devkitc-1
+  framework:
+    type: arduino
+
+# Enable Home Assistant API
+api:
+  services:
+    - service: play_rtttl
+      variables:
+        song_str: string
+      then:
+        - rtttl.play:
+            rtttl: !lambda "return song_str;"
+
+packages:
+  # Enable Home Assistant API
+  esphome: !include common/keys.yaml
+
+# Enable logging
+logger:
+
+wifi:
+  ssid: !secret iot_ssid
+  password: !secret iot_password
+  domain: .int.mmax.cloud
+
+web_server:
+  port: 80
+
+time:
+  - platform: homeassistant
+    id: homeassistant_time
+
+binary_sensor:
+  - platform: status
+    name: "Status"
+
+  - platform: gpio
+    name: "Boot Button"
+    pin:
+      number: 0
+      ignore_strapping_warning: true
+      mode:
+        input: true
+      inverted: true
+    disabled_by_default: true
+    on_press:
+      then:
+        - button.press: restart_button
+
+text_sensor:
+  - platform: version
+    name: "Firmware Version"
+  - platform: wifi_info
+    ip_address:
+      name: "IP Address"
+      entity_category: diagnostic
+    ssid:
+      name: "Connected SSID"
+      entity_category: diagnostic
+    mac_address:
+      name: "Mac Address"
+      entity_category: diagnostic
+
+switch:
+  - platform: gpio
+    pin: GPIO1
+    id: relay1
+    name: Relay 1
+    restore_mode: RESTORE_DEFAULT_OFF
+  - platform: gpio
+    pin: GPIO2
+    id: relay2
+    name: Relay 2
+    restore_mode: RESTORE_DEFAULT_OFF
+  - platform: gpio
+    pin: GPIO41
+    id: relay3
+    name: Relay 3
+    restore_mode: RESTORE_DEFAULT_OFF
+  - platform: gpio
+    pin: GPIO42
+    id: relay4
+    name: Relay 4
+    restore_mode: RESTORE_DEFAULT_OFF
+  - platform: gpio
+    pin:
+      number: GPIO45
+      ignore_strapping_warning: true
+    id: relay5
+    name: Relay 5
+    restore_mode: RESTORE_DEFAULT_OFF
+  - platform: gpio
+    pin:
+      number: GPIO46
+      ignore_strapping_warning: true
+    id: relay6
+    name: Relay 6
+    restore_mode: RESTORE_DEFAULT_OFF
+    
+uart:
+  tx_pin: GPIO17
+  rx_pin: GPIO18
+  baud_rate: 115200
+
+# buzzer
+output:
+  - platform: ledc
+    pin: GPIO21
+    id: buzzer
+
+rtttl:
+  output: buzzer
+  id: rtttl_buzzer
+  gain: 30%
+
+light:
+  - platform: neopixelbus
+    type: RGB
+    variant: 800KBPS
+    pin: GPIO38
+    num_leds: 1
+    name: "RGB LED"
+    id: rgb_led
+
+button:
+  - platform: restart
+    name: "Restart"
+    id: restart_button
+    entity_category: config
+
+  - platform: factory_reset
+    name: "Factory Reset"
+    id: reset
+    entity_category: config
+
+  - platform: safe_mode
+    name: "Safe Mode"
+    internal: false
+    entity_category: config
+
+sensor:
+  - platform: wifi_signal
+    name: "WiFi Signal"
+    id: wifi_signal_db
+    update_interval: 60s
+    entity_category: diagnostic
+
+  # Reports the WiFi signal strength in %
+  - platform: copy
+    source_id: wifi_signal_db
+    name: "WiFi Strength"
+    filters:
+      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
+    unit_of_measurement: "%"
+    entity_category: diagnostic

+ 240 - 0
lscp03.yaml

@@ -0,0 +1,240 @@
+# https://github.com/FlorianSoler/OpenBeken-Action-lsc-smartplug-with-monitoring-guide/tree/main?tab=readme-ov-file
+substitutions:
+  devicename: lscp03
+  low_devicename: lscp03
+  friendly_devicename: LSC Plug 03
+  update_interval_seconds: "15s"
+  
+esphome:
+  name: $devicename
+  friendly_name: $friendly_devicename
+
+bk72xx:
+  board: generic-bk7231t-qfn32-tuya
+  #framework:
+  #   version: dev
+
+packages:
+  # Enable Home Assistant API
+  esphome: !include common/keys.yaml
+
+logger:
+
+web_server:
+  port: 80
+
+wifi:
+  ssid: !secret iot_ssid
+  password: !secret iot_password
+  domain: .int.mmax.cloud
+
+
+sensor:
+  - platform: wifi_signal
+    name: "WiFi Signal Sensor"
+    update_interval: 60s
+
+  - platform: uptime
+    name: Uptime Sensor
+    id: uptime_sensor
+    update_interval: 60s
+    on_raw_value:
+      then:
+        - text_sensor.template.publish:
+            id: uptime_human
+            state: !lambda |-
+              int seconds = round(id(uptime_sensor).raw_state);
+              int days = seconds / (24 * 3600);
+              seconds = seconds % (24 * 3600);
+              int hours = seconds / 3600;
+              seconds = seconds % 3600;
+              int minutes = seconds /  60;
+              seconds = seconds % 60;
+              return (
+                (days ? to_string(days) + "d " : "") +
+                (hours ? to_string(hours) + "h " : "") +
+                (minutes ? to_string(minutes) + "m " : "") +
+                (to_string(seconds) + "s")
+              ).c_str();
+#
+# power monitoring
+#
+    # PC191HA includes a BL0937 chip for measuring power consumption
+    #     and BL0937 is a variation of hlw8012, but using inverted SEL pin functionality
+  - platform: hlw8012
+    model: BL0937     # note that the model must be specified to use special calculation parameters
+    sel_pin:          # I believe that cf_pin reports either Voltage or Current depending on this select pin
+      inverted: true  # determine whether true reports Voltage
+      number: P11
+    cf1_pin:
+      inverted: true 
+      number: P24
+    cf_pin: 
+      inverted: true 
+      number: P26
+    update_interval: 5s
+    change_mode_every: 4
+    # update_interval: 5s
+    # initial_mode: "VOLTAGE"
+    # change_mode_every: 4294967295
+    # Adjust according to the actual resistor values on board to calibrate the specific unit
+    # voltage_divider:  "895"               # LOWER VALUE GIVES LOWER VOLTAE
+    # current_resistor: "0.0006"          # HIGHER VALUE GIVES LOWER WATTAGE
+    voltage_divider: "795"
+    current_resistor: "0.001"
+    # how the power monitoring values are returned to ESPHome
+    voltage:
+      name: $friendly_devicename Voltage
+      id:   ${low_devicename}_voltage
+      unit_of_measurement: V
+      accuracy_decimals: 1
+      filters:
+        - skip_initial: 2
+        - sliding_window_moving_average:
+            window_size: 4
+            send_every: 2
+      on_value:
+        component.update: ${low_devicename}_apparent_power
+    power:
+      name: $friendly_devicename Power
+      id:   ${low_devicename}_power
+      unit_of_measurement: W
+      accuracy_decimals: 0
+      on_value:
+        component.update: ${low_devicename}_power_factor
+      filters:
+        # - skip_initial: 15
+        - skip_initial: 2
+        - sliding_window_moving_average:
+            window_size: 4
+            send_every: 2
+    current:
+      name: $friendly_devicename Current
+      id:   ${low_devicename}_current
+      unit_of_measurement: A
+      accuracy_decimals: 3
+      filters:
+        # - multiply: 1
+        - multiply: 0.450
+        - skip_initial: 2
+        - sliding_window_moving_average:
+            window_size: 4
+            send_every: 2
+
+    # power is simply current x voltage -- except that the pc191ha doesn't follow that formula.
+        # Setting current_resistor to give an accurate Amperage does NOT also give the correct Wattage
+        # my work-around is to calculate current from power / voltage
+        #  - platform: template  
+        #    name: $friendly_devicename Current
+        #    id:   ${low_devicename}_current
+        #    unit_of_measurement: A
+        #    accuracy_decimals: 2
+        #    update_interval: $update_interval_seconds
+        #    lambda: |-
+        #      return (id(${low_devicename}_power).state / id(${low_devicename}_voltage).state);
+        #    filters:  
+        #      - skip_initial: 5     # give time for data to settle to avoid NaN
+  - platform: total_daily_energy
+    name: $friendly_devicename daily consumption
+    id: ${low_devicename}_total_daily_energy
+    power_id: ${low_devicename}_apparent_power
+    filters: 
+      - multiply: 0.001 # to kWh
+    unit_of_measurement: kWh
+  - platform: template
+    name: "Apparent power"
+    id: ${low_devicename}_apparent_power
+    unit_of_measurement: VA
+    device_class: apparent_power
+    lambda: |-
+      return id(${low_devicename}_voltage).state * id(${low_devicename}_current).state;
+    update_interval: never
+    on_value:
+        component.update: ${low_devicename}_power_factor
+  - platform: template
+    name: "Power factor"
+    id: ${low_devicename}_power_factor
+    unit_of_measurement: ''
+    device_class: power_factor
+    lambda: |-
+      return id(${low_devicename}_power).state / id(${low_devicename}_apparent_power).state;
+    filters:
+      - clamp:
+          min_value: 0
+          max_value: 1
+    update_interval: never
+
+
+
+text_sensor:
+  - platform: template
+    name: Uptime Human Readable
+    id: uptime_human
+    icon: mdi:clock-start
+  - platform: wifi_info
+    ip_address:
+      name: IP Address
+      entity_category: diagnostic
+
+light:
+  - platform: binary
+    name: "led"
+    internal: true
+    id: led
+    output: red_led
+
+
+output:
+  - platform: gpio
+    id: red_led
+    pin:
+      number: P8
+      # inverted: true
+
+
+status_led:
+    pin:
+      number: P10
+      # inverted: true
+
+binary_sensor:
+  - platform: status
+    name: Status
+    entity_category: diagnostic
+
+  - platform: gpio
+    pin:
+      number: P7
+      mode:
+        input: true
+        pullup: true
+      inverted: true
+    id: button1
+    filters:
+      - delayed_on: 50ms
+      - delayed_off: 50ms
+    on_click:
+      - switch.toggle: outlet
+
+  - platform: status
+    name: ${friendly_devicename} status
+
+switch:
+  - platform: gpio
+    name: ${friendly_devicename} Outlet
+    id: outlet
+    pin: P6
+    icon: mdi:power-socket-eu
+    on_turn_on:
+      - light.turn_on: led
+    on_turn_off:
+      - light.turn_off: led
+    restore_mode: RESTORE_DEFAULT_OFF
+  # Switch to restart the plug
+  - platform: restart
+    name: ${friendly_devicename} Restart Switch
+
+# Enable time component to reset energy at midnight
+time:
+  - platform: homeassistant
+    id: homeassistant_time