Flight-Control
S | M | T | W | F | T | S | |
---|---|---|---|---|---|---|---|
39 | 24 24 | 25 25 | 26 26 | 27 | 28 | 29 | 30 |
40 | 01 | 02 | 03 | 04 | 05 | 06 | 07 |
41 | 08 | 09 | 10 | 11 | 12 | 13 | 14 |
42 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
43 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
|
Hot Projects
S | M | T | W | F | T | S | |
---|---|---|---|---|---|---|---|
39 | 24 24 24 | 25 25 25 | 26 26 26 | 27 27 | 28 28 | 29 29 | 30 30 |
40 | 01 01 | 02 02 | 03 03 | 04 04 | 05 05 | 06 06 | 07 07 |
41 | 08 08 | 09 09 | 10 10 | 11 11 | 12 12 | 13 13 | 14 14 |
42 | 15 15 | 16 16 | 17 17 | 18 18 | 19 19 | 20 20 | 21 21 |
43 | 22 22 | 23 23 | 24 24 | 25 25 | 26 26 | 27 27 | 28 28 |
|
This Episode will focus solely on hacking around in the Riden RD-6018W. Per default, the W version comes with a wireless interface and Ridens android app. Since that is less than useful the idea came up to see if we could flash our own firmware onto it.
Luckily Riden uses a COTS ESP12 module. Unluckily the module isn't simply flashed by plugging it into USB like we are used on the ESP32 nodemcu (and the likes) modules. The next task was to analyze and reverse engineer the module and its PCB implementation and hack a little USB-Serial adapter and breadboard magic, to flash a specific esphome firmware that talks modbus to the RD-6018 and exposes the control interfaces and log data to home-assistant.
After that was successfully done, control is now available in Home-Assistant and long term log-data is stored in Prometheus and available in Grafana.
Last but not least USB connection and working with the open-source toolkit RidenGUI also turned out to be no problem at all. All in all, this was a very successful session to get the most out of the Riden RD-6018 and the same should apply to the RD-6006 and RD-6012 models.
As requested, here is the esphome config for it:
################################################################################ # RD-6018W ESP-12F Configuration ############################################# # V1.0 chrono (Apollo-NG) 2022-11-13 substitutions: name: 'rd-6018' friendly_name: 'RD-6018' ################################################################################ # GENERAL #################################################################### esphome: name: ${name} platform: ESP8266 board: esp01_1m wifi: ssid: !secret wifi_ssid password: !secret wifi_psk domain: ".iot.apollo.lan" fast_connect: on logger: baud_rate: 0 # Enable Home Assistant API and set reboot timeout api: reboot_timeout: 60s # Enable OTA updates ota: # Time sync needed for total_daily_energy calcs time: - platform: homeassistant id: homeassistant_time timezone: "UTC" ################################################################################ # BUS Config ################################################################# uart: tx_pin: 1 rx_pin: 3 baud_rate: 1000000 debug: modbus_controller: address: 0x01 update_interval: 10s ################################################################################ # SENSORS #################################################################### text_sensor: - platform: version name: "${name} - Version" icon: mdi:cube-outline sensor: - platform: uptime name: "${name} - Uptime" update_interval: 60s icon: mdi:clock-outline - platform: wifi_signal name: "${name} - Wifi Signal" update_interval: 10s icon: mdi:wifi - platform: modbus_controller name: '${friendly_name} Internal Temperature' register_type: holding address: 4 register_count: 2 bitmask: 0xFFFF value_type: U_DWORD unit_of_measurement: °C state_class: measurement device_class: temperature lambda: | return data[item->offset + 1] == 0 ? x : -x; - platform: modbus_controller name: '${friendly_name} External Temperature' register_type: holding address: 34 register_count: 2 bitmask: 0xFFFF value_type: U_DWORD unit_of_measurement: °C state_class: measurement device_class: temperature lambda: | return data[item->offset + 1] == 0 ? x : -x; - platform: modbus_controller name: '${friendly_name} Output Voltage' register_type: holding address: 10 value_type: U_WORD unit_of_measurement: V state_class: measurement device_class: voltage accuracy_decimals: 2 filters: - multiply: 0.01 - platform: modbus_controller name: '${friendly_name} Output Current' register_type: holding address: 11 value_type: U_WORD unit_of_measurement: A state_class: measurement device_class: current accuracy_decimals: 2 filters: - multiply: 0.01 - platform: modbus_controller name: '${friendly_name} Output Energy' register_type: holding address: 12 value_type: U_WORD unit_of_measurement: Ah state_class: measurement device_class: energy accuracy_decimals: 2 filters: - multiply: 0.001 - platform: modbus_controller name: '${friendly_name} Output Power' address: 13 register_type: holding value_type: U_WORD unit_of_measurement: W state_class: measurement device_class: power accuracy_decimals: 2 filters: - multiply: 0.01 - platform: modbus_controller name: '${friendly_name} Input Voltage' register_type: holding address: 14 value_type: U_WORD unit_of_measurement: V state_class: measurement device_class: voltage accuracy_decimals: 2 filters: - multiply: 0.01 - platform: modbus_controller name: '${friendly_name} Energy' internal: true register_type: holding address: 40 value_type: U_DWORD unit_of_measurement: Wh state_class: measurement device_class: energy accuracy_decimals: 3 filters: - multiply: 0.001 switch: - platform: modbus_controller name: '${friendly_name} Keypad Lock' address: 15 register_type: holding bitmask: 1 - platform: modbus_controller name: '${friendly_name} Power' address: 18 register_type: holding bitmask: 1 number: - platform: modbus_controller name: '${friendly_name} Voltage Setting' address: 8 value_type: U_WORD min_value: 0.01 max_value: 60.0 step: 0.01 lambda: return x / 100.0f; multiply: 100 - platform: modbus_controller name: '${friendly_name} Current Setting' address: 9 value_type: U_WORD min_value: 0.01 max_value: 18.0 step: 0.01 lambda: return x / 100.0f; multiply: 100 - platform: modbus_controller name: '${friendly_name} Voltage Protection' entity_category: config address: 82 value_type: U_WORD min_value: 0.01 max_value: 60.0 step: 0.01 lambda: return x / 100.0f; multiply: 100 - platform: modbus_controller name: '${friendly_name} Current Protection' entity_category: config address: 83 value_type: U_WORD min_value: 0.01 max_value: 18.0 step: 0.01 lambda: return x / 100.0f; multiply: 100 binary_sensor: - platform: modbus_controller name: '${friendly_name} Battery Mode' address: 32 register_type: holding bitmask: 1
If you want to see more, please join Odysee and follow our channel there.
Discussion
Would that ESP12 esphome/grafana hack also work on a Riden RD-6024? Would you mind sharing your esphome config for it?
sure, see updated post above - i would guess that should work with the Riden/Ruideng RD-6024W as well but since I don't have that one I could only test and verify this on the RD-6018W. Just give it a try :)
Such an interesting post. I enjoy reading this one. Lanai Screen Installation Spring Hill, FL
A piece of very good information about Riden RD-6018W. You can use it as a Home Assistant module. It will be a great product when you design your beautiful home.
I am continually looking online for articles that can facilitate me. Thank you! https://meoktwi.com/
I stumbled on this while browsing on google I’ll be sure to come back. thanks for sharing. https://therowdylender.com/
What’s up colleagues, its enormous post regarding educationand entirely defined, keep it up all the time. https://totogorae.com/
F*ckin¦ Have you ever thought about including a little bit more than just your articles? https://mymelee.com/
ufaslot แทงบอลได้ทุกที่ ทันทีที่ต้องการ สล็อตเว็บตรงอันดับ1 ที่ให้คุณสนุกได้ทุกรูปแบบ
Les répliques de montres sont des montres fabriquées pour ressembler [url=https://www.repliquemontreluxechine.com]replique montre[/url] etroitement aux montres authentiques de marques de luxe. Elles sont souvent moins chères que les montres authentiques, ce qui les [url=https://www.repliquemontreluxechine.com/categorie/panerai]replique panerai[/url] rend plus accessibles à un plus grand nombre de personnes. Voici quelques raisons pour lesquelles certaines personnes choisissent d'acheter des répliques de montres , Les montres de luxe authentiques [url=https://www.montrerepliquesuisse.com]replique suisse[/url] peuvent coûter des milliers, voire des dizaines de milliers d'euros. Les répliques de montres offrent [url=https://www.suissereplique.com/categorie/iwc]replique iwc[/url] une alternative moins chère pour ceux qui veulent le look [url=https://www.orologireplicamilano.com/categoria/vacheron-constantin]replica Vacheron Constantin[/url] et le style d'une montre de luxe sans payer le prix exorbitant.