Hi there! Reading the Watermark sensor is no easy task indeed. Took us a while to get accurate and reliable data out of these sensors.
First of all, take a look at the official documentation provided by Irrometer: https://www.irrometer.com/200ss.html
Especially the pseudo-AC excitation is very important and make sure you calibrate the readings using the soil temperature.
There's quite some off-the-shelf hardware on the market already. Look for a device that has a low power consumption so you can measure throughout the year, for example:
https://www.crodeon.com/blogs/news/connecting-a-watermark-sensor-to-the-cloud
Let me know if you have any more questions!
@Tmaster I think it writes better code than a lot of code I've seen, and the documentation is a lot better. The latter, of course, is because most coders don't document.
some key elements:
good statement of work -- Purpose of the Code is key (did you write that? Good job!). This will guide the AI to write what you want.
descriptive variables
good documentation
code is independent of reading sensors up-to-down/down-to-up
I spent a couple hours analyzing, researching and writing and re-writing this and all I can say is that the AI didn't catch is, as far as I can see, if your sensors are too far apart or your magnet is too weak, you could get false readings.
You, being the author of AI directive, are responsible for for the code. The AI is just a tool.
I started my coding with assembly language, though at that time we still had to enter the binary on some machines (set 16 switches, then press commit). ForTran and COBOL were the first real high level languages and subsequent languages, pascal, c, java, etc. were improvements. AI is a quantum step. It's still coding, but you have to learn how to talk to the AI to get what you want.
Good project! Let us know how it turns out and if you had to tweak the code.
-OSD
I did a grep on the source code and found this snipper
#if defined(MY_GATEWAY_ESP8266) || defined(MY_GATEWAY_ESP32)
// Turn off access point
WiFi.mode(WIFI_STA);
#if defined(MY_GATEWAY_ESP8266)
WiFi.hostname(MY_HOSTNAME);
#elif defined(MY_GATEWAY_ESP32)
WiFi.setHostname(MY_HOSTNAME);
#endif
#if defined(MY_IP_ADDRESS)
WiFi.config(_MQTT_clientIp, _gatewayIp, _subnetIp);
#endif /* End of MY_IP_ADDRESS */
(void)WiFi.begin(MY_WIFI_SSID, MY_WIFI_PASSWORD, 0, MY_WIFI_BSSID);
#endif
MySensors uses the standard ESP libraries for this. So I expect it to work. But you need to provide at least a bit of source code. Right now it's hard to answer your question. Regarding to MySensors:
A HTTP hostname can only be set for Gateways that either use Wifi or Ethernet
For nodes you can provide a sketchname and that will be seen in your controller.
Regarding to static non static IP addresses. I prefer to use DHCP and set that device in my router as a static IP. There I also give it another hostname. So that in case I have to replace my Gateway I can do it all in the router.
Hope this helps. But please provide more info on what you're trying to achieve
MySensors is an EXCELLENT project.
It allows for complete control over the various sensors.
It's extremely simple.
Its drawback is that it's open source, so it's unfunded and development is slow, but I don't think there are any better projects than this at the moment.
Are you still able to use the same analog phone plugged into the back of your modem? If so then it has to still use the same protocol, and I don't understand why the analog beacon wouldn't still work. It would just have to be on that same wire, not on the internet side of the modem. The modem is doing all of the translation in that case.
Or am I missing something? Did you have to get a new phone to use the new service?