Hi Jesse,
Sorry for the delay. What I do is fairly simple. For each sensor, I load a small record into a softIOC with
dbLoadRecords("esensor.db","P=13IDE:,Q=Esensor")
in the startup script and with the "esensor.db" of (also attached):
####
# record used for Esensor temperature, humidity sensors
record(ai,"$(P)$(Q):TempF") {
field(DESC, "Temperature (F)")
field(VAL, "0")
}
record(ai,"$(P)$(Q):TempC") {
field(DESC, "Temperature (C)")
field(VAL, "0")
}
record(ai,"$(P)$(Q):Humid") {
field(DESC, "Humidity (percent)")
field(VAL, "0")
}
record(stringin, "$(P)$(Q):TimeStamp") {
field(DESC, "Timestamp of last update")
field(VAL, "")
}
####
Then, I run a Python script (attached) to read the sensor (over plain HTTP), parse the results, and push to PVs. The script handles both older Esensors that send data as XML, and newer ones that send JSON data. You could probably put that script inside procServ or something like that but I just have it running as a simple background script.
--Matt