I’ll say at the outset that I’m new here and I’m just starting to build my home assistant system.
I immediately ran into my first major problem, for which I have not been able to find a solution anywhere.
I have a vacuum tube solar collector what is managed by an SR658 solar controller, I have problems using the system, I would like a couple of things to work differently, since these problems cannot be controlled from the menu, so I would like to solve this with homeassistant.
Unfortunately, this device does not have a communication port, despite the description on the linked page, not only does it lack a connector, but there is also no cable.
However, it has an SD Card slot where you log the data with a time stamp.
My idea is that I can share the SDCard data using a BIGTREETECH Module BTT TF Cloud V1.0 SD Cloud Wireless Transmission Module.
However, I don’t know how to integrate them into my homeassistance, is there a way to attach this drive to the system and have the integration read the data from there?
The file format can be easily imported into Excel, I am attaching the sample.
Is this idea feasible or should I choose another path?
Thank you for your help in advance.
Sorry for my English, I’m using a translator.
Hi, this controler has a RS485 port (485-A and 485-B). The telegrams are not hard to decode. I own a SR1188 and I’m in the middel of the process of decoding the telegrams.
Connect a RS485<>USB adapter, and hook up a serial port terminal. Set at 4800/8N1 and see if any data comes through.
I welcome you
I regret to inform you that the RS485 port is listed on the data sheet of the device I received, but there is no such option on the sheet. I disassembled the device and couldn’t find the option either.
Hi - I’ve had an SR1168 for close to 10 years and way back then I found a Java app that reads the 1168. It’s been a LONG time since I played with it, it just works
Here’s what it puts out - jt will read a bunch of other stuff that I don’t use:
TABLE SolarWater
START_SAMPLE_PERIOD
tankTop=68
collector=42
tankBottom=51
END_SAMPLE_PERIOD
END_TABLE.
Drop me a note if you’d like to collaborate on getting this into HomeAssistant,
Hi @Jozsi966 did you manage to control the data from the BIGTREETECH module into home assistance?
I was thinking about buying the same module to install on my SR658.
Thank you
Hi, all! I have a short Python script working on my SR1168 and sending MQTT messages. Please feel free to give this a try - and let me know the results
Here’s the code
#!/usr/bin/python
import serial
import paho.mqtt.client as mqtt
import time
def CtoF(C):
F = (C * 9 / 5) + 32
return F
ser = serial.Serial('/dev/ttyUSB0', 4800)
unicode_string = '\x01\x03\x00\x00\x00\x10\x14\x00'
# Encoding to bytes
byte_string = unicode_string.encode('utf-8')
# send request
ser.write(byte_string)
# read 37 byte response
raw = ser.read(37)
data = raw[3:37]
# print data.encode('hex')
top = CtoF(data[0] - 10)
#print('Tank Top', top)
collector = CtoF(data[1] - 10)
#print('Collector', collector)
bottom = CtoF(data[2])
#print('Tank Bottom', bottom)
import paho.mqtt.client as mqtt
# Define the MQTT settings
broker = "emqx" # Replace with your broker address
port = 1883 # Default MQTT port
# Create a new MQTT client instance
client = mqtt.Client()
# Connect to the broker
client.connect(broker, port)
# Publish the messages
client.publish("solarwater/top", top)
time.sleep(2)
client.publish("solarwater/collector", collector)
time.sleep(2)
client.publish("solarwater/bottom", bottom)
time.sleep(2)
# Disconnect from the broker
client.disconnect()
#print("Message sent!")
And here’s what I put into my configuration.yaml
# Solar Water
- state_topic: "solarwater/collector"
name: "Solar Water Collector Temperature"
unit_of_measurement: '°F'
device_class: 'temperature'
value_template: "{{ value | round(1) }}"
unique_id: SWCollector
- state_topic: "solarwater/top"
name: "Solar Water Tank Top"
unit_of_measurement: '°F'
device_class: 'temperature'
value_template: "{{ value | round(1) }}"
unique_id: SWTop
- state_topic: "solarwater/bottom"
name: "Solar Water Tank Bottom"
unit_of_measurement: '°F'
device_class: 'temperature'
value_template: "{{ value | round(1) }}"
unique_id: SWBottom