[DEPRECATED] ST_Anything - Arduino/ESP8266/ESP32

Thanks for the prompt response!
I read through some of the posts … sadly, not much has helped.

I’m testing this with a smoke detector to start off with : -
(I have not cleaned up any of the unneeded libraries yet, etc.)
Sketch is as follows :

//******************************************************************************************
// File: ST_Anything_Multiples_ESP8266WiFi.ino
// Authors: Dan G Ogorchock & Daniel J Ogorchock (Father and Son)
//
// Summary: This Arduino Sketch, along with the ST_Anything library and the revised SmartThings
// library, demonstrates the ability of one NodeMCU ESP8266 to
// implement a multi input/output custom device for integration into SmartThings.
// The ST_Anything library takes care of all of the work to schedule device updates
// as well as all communications with the NodeMCU ESP8266’s WiFi.
//
// ST_Anything_Multiples implements the following ST Capabilities as a demo of what is possible with a single NodeMCU ESP8266
// - 1 x Alarm device (using a simple digital output)
// - 1 x Contact Sensor devices (used to monitor magnetic door sensors)
// - 1 x Switch devices (used to turn on a digital output (e.g. LED, relay, etc…)
// - 1 x Motion devices (used to detect motion)
// - 1 x Smoke Detector devices (using simple digital input)
// - 1 x Temperature Measurement devices (Temperature from Dallas Semi 1-Wire DS18B20 device)
// - 1 x Relay Switch devices (used to turn on a digital output for a set number of cycles And On/Off times (e.g.relay, etc…))
// - 2 x Button devices (sends “pushed” if held for less than 1 second, else sends “held”
// - 1 x Water Sensor devices (using the 1 analog input pin to measure voltage from a water detector board)
//
// Change History:
//
// Date Who What
// ---- — ----
// 2015-01-03 Dan & Daniel Original Creation
// 2017-02-12 Dan Ogorchock Revised to use the new SMartThings v2.0 library
// 2017-04-17 Dan Ogorchock New example showing use of Multiple device of same ST Capability
// used with new Parent/Child Device Handlers (i.e. Composite DH)
// 2017-05-25 Dan Ogorchock Revised example sketch, taking into account limitations of NodeMCU GPIO pins
// 2018-02-09 Dan Ogorchock Added support for Hubitat Elevation Hub
//
//******************************************************************************************
//******************************************************************************************
// SmartThings Library for ESP8266WiFi
//******************************************************************************************
#include <SmartThingsESP8266WiFi.h>

//******************************************************************************************
// ST_Anything Library
//******************************************************************************************
#include <Constants.h> //Constants.h is designed to be modified by the end user to adjust behavior of the ST_Anything library
#include <Device.h> //Generic Device Class, inherited by Sensor and Executor classes
#include <Sensor.h> //Generic Sensor Class, typically provides data to ST Cloud (e.g. Temperature, Motion, etc…)
#include <Executor.h> //Generic Executor Class, typically receives data from ST Cloud (e.g. Switch)
#include <InterruptSensor.h> //Generic Interrupt “Sensor” Class, waits for change of state on digital input
#include <PollingSensor.h> //Generic Polling “Sensor” Class, polls Arduino pins periodically
#include <Everything.h> //Master Brain of ST_Anything library that ties everything together and performs ST Shield communications

#include <PS_Illuminance.h> //Implements a Polling Sensor (PS) to measure light levels via a photo resistor

#include <PS_TemperatureHumidity.h> //Implements a Polling Sensor (PS) to measure Temperature and Humidity via DHT library
#include <PS_DS18B20_Temperature.h> //Implements a Polling Sesnor (PS) to measure Temperature via DS18B20 libraries
#include <PS_Water.h> //Implements a Polling Sensor (PS) to measure presence of water (i.e. leak detector)
#include <IS_Motion.h> //Implements an Interrupt Sensor (IS) to detect motion via a PIR sensor
#include <IS_Contact.h> //Implements an Interrupt Sensor (IS) to monitor the status of a digital input pin
#include <IS_Smoke.h> //Implements an Interrupt Sensor (IS) to monitor the status of a digital input pin
#include <IS_DoorControl.h> //Implements an Interrupt Sensor (IS) and Executor to monitor the status of a digital input pin and control a digital output pin
#include <IS_Button.h> //Implements an Interrupt Sensor (IS) to monitor the status of a digital input pin for button presses
#include <EX_Switch.h> //Implements an Executor (EX) via a digital output to a relay
#include <EX_Alarm.h> //Implements Executor (EX)as an Alarm Siren capability via a digital output to a relay
#include <S_TimedRelay.h> //Implements a Sensor to control a digital output pin with timing capabilities

//*************************************************************************************************
//NodeMCU v1.0 ESP8266-12e Pin Definitions (makes it much easier as these match the board markings)
//*************************************************************************************************
//#define LED_BUILTIN 16
//#define BUILTIN_LED 16
//
#define D0 16 //no internal pullup resistor
#define D1 5
#define D2 4
#define D3 0 //must not be pulled low during power on/reset, toggles value during boot
#define D4 2 //must not be pulled low during power on/reset, toggles value during boot
#define D5 14
#define D6 12
#define D7 13 //Smoke Sensor
#define D8 15 //must not be pulled high during power on/reset

//******************************************************************************************
//Define which Arduino Pins will be used for each device
//******************************************************************************************
//#define PIN_WATER_1 A0 //NodeMCU ESP8266 only has one Analog Input Pin ‘A0’

//#define PIN_ALARM_1 D0 //SmartThings Capabilty “Alarm”
//#define PIN_SWITCH_1 D1 //SmartThings Capability “Switch”
//#define PIN_CONTACT_1 D2 //SmartThings Capabilty “Contact Sensor”
//#define PIN_BUTTON_1 D3 //SmartThings Capabilty Button / Holdable Button (Normally Open!)
//#define PIN_BUTTON_2 D4 //SmartThings Capabilty Button / Holdable Button (Normally Open!)
//#define PIN_MOTION_1 D5 //SmartThings Capabilty “Motion Sensor” (HC-SR501 PIR Sensor)
//#define PIN_SMOKE_1 D6 //SmartThings Capabilty “Smoke Detector”
//#define PIN_TEMPERATURE_1 D7 //SmartThings Capabilty “Temperature Measurement” (Dallas Semiconductor DS18B20)
//#define PIN_TIMEDRELAY_1 D8 //SmartThings Capability “Relay Switch”

//******************************************************************************************
//ESP8266 WiFi Information
//******************************************************************************************
String str_ssid = “mySSID”; // <—You must edit this line!
String str_password = “***********”; // <—You must edit this line!
IPAddress ip(200,1,1,120); //Device IP Address // <—You must edit this line!
IPAddress gateway(200,1,1,1); //Router gateway // <—You must edit this line!
IPAddress subnet(255, 255, 255, 0); //LAN subnet mask // <—You must edit this line!
IPAddress dnsserver(200,1,1,1); //DNS server // <—You must edit this line!
const unsigned int serverPort = 8090; // port to run the http server on

// Smartthings Hub Information
IPAddress hubIp(200,1,1,15); // smartthings hub ip // <—You must edit this line!
const unsigned int hubPort = 39500; // smartthings hub port

//******************************************************************************************
//st::Everything::callOnMsgSend() optional callback routine. This is a sniffer to monitor
// data being sent to ST. This allows a user to act on data changes locally within the
// Arduino sktech.
//******************************************************************************************
void callback(const String &msg)
{
Serial.print(F("ST_Anything Callback: Sniffed data = "));
Serial.println(msg);

//TODO: Add local logic here to take action when a device’s value/state is changed

//Masquerade as the ThingShield to send data to the Arduino, as if from the ST Cloud (uncomment and edit following line)
//st::receiveSmartString(“Put your command here!”); //use same strings that the Device Handler would send
}

//******************************************************************************************
//Arduino Setup() routine
//******************************************************************************************
void setup()
{
//******************************************************************************************
//Declare each Device that is attached to the Arduino
// Notes: - For each device, there is typically a corresponding “tile” defined in your
// SmartThings Device Hanlder Groovy code, except when using new COMPOSITE Device Handler
// - For details on each device’s constructor arguments below, please refer to the
// corresponding header (.h) and program (.cpp) files.
// - The name assigned to each device (1st argument below) must match the Groovy
// Device Handler names. (Note: “temphumid” below is the exception to this rule
// as the DHT sensors produce both “temperature” and “humidity”. Data from that
// particular sensor is sent to the ST Hub in two separate updates, one for
// “temperature” and one for “humidity”)
// - The new Composite Device Handler is comprised of a Parent DH and various Child
// DH’s. The names used below MUST not be changed for the Automatic Creation of
// child devices to work properly. Simply increment the number by +1 for each duplicate
// device (e.g. contact1, contact2, contact3, etc…) You can rename the Child Devices
// to match your specific use case in the ST Phone Application.
//******************************************************************************************
//Polling Sensors
//static st::PS_Water sensor1(F(“water1”), 60, 20, PIN_WATER_1, 200);
//static st::PS_DS18B20_Temperature sensor2(F(“temperature1”), 15, 0, PIN_TEMPERATURE_1, false, 10, 1);

//Interrupt Sensors
//static st::IS_Contact sensor3(F(“contact1”), PIN_CONTACT_1, LOW, true);
//static st::IS_Button sensor4(F(“button1”), PIN_BUTTON_1, 1000, LOW, true, 500);
//static st::IS_Button sensor5(F(“button2”), PIN_BUTTON_2, 1000, LOW, true, 500);
//static st::IS_Motion sensor6(F(“motion1”), PIN_MOTION_1, HIGH, false);
static st::IS_Smoke sensor7(F(“smoke1”), D7, HIGH, true, 500);

//Special sensors/executors (uses portions of both polling and executor classes)
//static st::S_TimedRelay sensor8(F(“relaySwitch1”), PIN_TIMEDRELAY_1, LOW, false, 3000, 0, 1);

//Executors
//static st::EX_Alarm executor1(F(“alarm1”), PIN_ALARM_1, LOW, true);
//static st::EX_Switch executor2(F(“switch1”), PIN_SWITCH_1, LOW, true); //Inverted logic for “Active Low” Relay Board

//*****************************************************************************
// Configure debug print output from each main class
// -Note: Set these to “false” if using Hardware Serial on pins 0 & 1
// to prevent communication conflicts with the ST Shield communications
//*****************************************************************************
st::Everything::debug=true;
st::Executor::debug=true;
st::Device::debug=true;
st::PollingSensor::debug=true;
st::InterruptSensor::debug=true;

//*****************************************************************************
//Initialize the “Everything” Class
//*****************************************************************************

//Initialize the optional local callback routine (safe to comment out if not desired)
st::Everything::callOnMsgSend = callback;

//Create the SmartThings ESP8266WiFi Communications Object
//STATIC IP Assignment - Recommended
st::Everything::SmartThing = new st::SmartThingsESP8266WiFi(str_ssid, str_password, ip, gateway, subnet, dnsserver, serverPort, hubIp, hubPort, st::receiveSmartString);

//DHCP IP Assigment - Must set your router's DHCP server to provice a static IP address for this device's MAC address
//st::Everything::SmartThing = new st::SmartThingsESP8266WiFi(str_ssid, str_password, serverPort, hubIp, hubPort, st::receiveSmartString);

//Run the Everything class’ init() routine which establishes WiFi communications with SmartThings Hub
st::Everything::init();

//*****************************************************************************
//Add each sensor to the “Everything” Class
//*****************************************************************************
//st::Everything::addSensor(&sensor1);
//st::Everything::addSensor(&sensor2);
//st::Everything::addSensor(&sensor3);
//st::Everything::addSensor(&sensor4);
//st::Everything::addSensor(&sensor5);
//st::Everything::addSensor(&sensor6);
st::Everything::addSensor(&sensor7);
//st::Everything::addSensor(&sensor8);

//*****************************************************************************
//Add each executor to the “Everything” Class
//*****************************************************************************
//st::Everything::addExecutor(&executor1);
//st::Everything::addExecutor(&executor2);

//*****************************************************************************
//Initialize each of the devices which were added to the Everything Class
//*****************************************************************************
st::Everything::initDevices();

}

//******************************************************************************************
//Arduino Loop() routine
//******************************************************************************************
void loop()
{
//*****************************************************************************
//Execute the Everything run method which takes care of “Everything”
//*****************************************************************************
st::Everything::run();
}

My LAN - fairly large for a residential installation - but is straight forward (all Ubiquiti equipment) - but no mesh network - I just don’t use a rfc1918 compliant IP range internally. There are no internal routing issues.

The ESP8266 board and the Smartthings hub are connected via the same AP.

I get no messages send to the Arduino IDE Serial Monitor window.

In the smartthings Live Logging window Iget this after I alter the settings on the main ST_Anything device : -

The odd thing is that my ST Hub’s IP is .15 … not .40? (And it is configured correctly in the sketch)

The parent_st_anything settings are as follows : -

Try modifying your sketch to use .40. The value in the ST IDE Live Logs is coming from the code running on the ST side, not from the Arduino/NodeMCU board. Thus, it appears your hub really is using .40.

You can also check this in the ST Web IDE by displaying the details from your hub.

:man_facepalming:

Thanks for pointing out the obvious! … .15 is my Harmony hub - which was relaying the message back to the Smartthings Hub (which is interesting…)

I now get some activity in the form of errors going in the log when it tries to create the child devices (Still no child devices though) … I then decided to add the other capabilities (sensors) in the sketch thinking maybe a there is an issue with just the smoke DH

Log is as follows : -

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:56 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘s’ with an int value of 115
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
smoke1 detected
^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:56 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘c’ with an int value of 99
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
contact1 open
^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:55 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: true not parsed properly

The current character read is ‘t’ with an int value of 116
true not parsed properly
line number 1
index number 1
temperature1 -196
.^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:54 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘w’ with an int value of 119
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
water1 dry
^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:54 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘s’ with an int value of 115
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
switch1 off
^]
Possible solutions: authError() @line 846 (lanEventHandler)

10505d74-5c15-485c-99d5-738f907ca63a 8:40:54 PM: debug Using ip: 200.1.1.120 and port: 8090 for device: 10505d74-5c15-485c-99d5-738f907ca63a

10505d74-5c15-485c-99d5-738f907ca63a 8:40:54 PM: debug Executing ‘sendEthernet’ refresh

10505d74-5c15-485c-99d5-738f907ca63a 8:40:54 PM: debug Executing ‘refresh()’

10505d74-5c15-485c-99d5-738f907ca63a 8:40:54 PM: debug Executing ‘updateDeviceNetworkID’

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:52 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: true not parsed properly

The current character read is ‘t’ with an int value of 116
true not parsed properly
line number 1
index number 1
temperature1 -196
.^]
Possible solutions: authError() @line 846 (lanEventHandler)

52992416-b7a4-4820-98c7-e2902e357d48 8:40:52 PM: debug result: [uptime:17 days and 8:53:30]

52992416-b7a4-4820-98c7-e2902e357d48 8:40:52 PM: debug result: [uptime:17 days and 8:53:30]

10505d74-5c15-485c-99d5-738f907ca63a 8:40:51 PM: info No update received from Arduino device in past null seconds

10505d74-5c15-485c-99d5-738f907ca63a 8:40:51 PM: info Device inactivity timer started for null seconds

10505d74-5c15-485c-99d5-738f907ca63a 8:40:51 PM: debug Hub Port = 39500

10505d74-5c15-485c-99d5-738f907ca63a 8:40:51 PM: debug Hub IP Address = 200.1.1.40

10505d74-5c15-485c-99d5-738f907ca63a 8:40:51 PM: debug Executing ‘updated()’

10505d74-5c15-485c-99d5-738f907ca63a 8:40:51 PM: debug Executing ‘updated()’

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:50 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘s’ with an int value of 115
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
smoke1 detected
^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:49 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘c’ with an int value of 99
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
contact1 open
^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:48 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: true not parsed properly

The current character read is ‘t’ with an int value of 116
true not parsed properly
line number 1
index number 1
temperature1 -196
.^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:47 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘w’ with an int value of 119
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
water1 dry
^]
Possible solutions: authError() @line 846 (lanEventHandler)

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:46 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ‘s’ with an int value of 115
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
switch1 off
^]
Possible solutions: authError() @line 846 (lanEventHandler)

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug Using ip: 200.1.1.120 and port: 8090 for device: 10505d74-5c15-485c-99d5-738f907ca63a

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug Executing ‘sendEthernet’ refresh

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug Executing ‘refresh()’

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug setting deviceNetworkID = 5CCF71A373D

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug Executing ‘updateDeviceNetworkID’

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug setting deviceNetworkID = 5CCF71A373D

10505d74-5c15-485c-99d5-738f907ca63a 8:40:45 PM: debug Executing ‘updateDeviceNetworkID’

10505d74-5c15-485c-99d5-738f907ca63a 8:40:42 PM: info No update received from Arduino device in past null seconds

10505d74-5c15-485c-99d5-738f907ca63a 8:40:42 PM: info Device inactivity timer started for null seconds

10505d74-5c15-485c-99d5-738f907ca63a 8:40:42 PM: debug Hub Port = 39500

10505d74-5c15-485c-99d5-738f907ca63a 8:40:42 PM: debug Hub IP Address = 200.1.1.40

10505d74-5c15-485c-99d5-738f907ca63a 8:40:42 PM: debug Executing ‘updated()’

10505d74-5c15-485c-99d5-738f907ca63a 8:40:42 PM: debug Executing ‘updated()’

61e6a817-41e8-4f92-b549-0591cca8085e 8:40:38 PM: debug Switch : ‘on’

dbaf5e98-3f32-42f5-b5ab-77b80afa09ec 8:40:37 PM: debug Event: [humidity:99.5, temperature:22.0, tempUnit:C]

dbaf5e98-3f32-42f5-b5ab-77b80afa09ec 8:40:37 PM: debug Event: [humidity:99.5, temperature:22.0, tempUnit:C]

5b90ae15-8373-4cbb-b29f-26d571f57118 8:40:37 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_9f20a0e04274c39d528fcf88cbfebb2580be1e11d65a449c793ea6b34dcffa3e.logError() is applicable for argument types: (java.lang.String, groovy.json.JsonException) values: [lanEventHandler Exception:, groovy.json.JsonException: true not parsed properly

The current character read is ‘t’ with an int value of 116
true not parsed properly
line number 1
index number 1
temperature1 -196
.^]
Possible solutions: authError() @line 846 (lanEventHandler)

DH’s are definitely there and published : -

Oh - and I’m now getting data streaming back to the Arduino IDE Status console …

I haven’t used a ST v1 hub in the last 4-5 years. Thus, I am not certain whether or not everything still works with a v1 hub. I have been using a v2 hub on ST since it was released (thereby retiring my v1 hub…)

I am now using Hubitat as my primary hub, and I keep my ST v2 hub up and running just to assist users with ST_Anything. I just tested my ST_Anything_Multiples_ESP8266WiFi.ino sketch and everything appears to be working fine on SmartThings.

Perhaps another ST v1 Hub user will chime in and share whether or not ST_Anything still works on that older model of hub?

I just managed to get the Temperature child device created … not entirely sure how yet :smiley:

Thank you for the assistance! - really appreciated! - and thanks for putting the effort to create ST_Anything and share it!

Perhaps time to upgrade to the v2 hub :thinking:

SmartThings/Samsung no longer makes and sells SmartThings hubs. Your best bet is to wait it out and see what third parties make “Works As SmartThings Hub” (WASK) devices.

Dan,
I had to move to ST new app, (kind of forced)
I am using St-anything to drive a servo.
Some how not working with new app.
Updated the DH and also deleted all the child and created again.

Is the new app working with servo?

Any help?

I can’t see any reason why it would not work with a Servo, however I have not personally tested it. The Child Servo DTH simply implements a standard Switch and Dimmer pair of capabilities, which should work fine with the new ST App.

Hello Dan,

first post here ; first of all, thank you - appreciate the work you put into this a lot.

I’ve implemented couple of things on ST_Anything previously, trying for something more complex.

The application runs on NodeMCU 1.0 in SmartThings.

I’m running into an issue where st::Everything::run() blocks for appreciable amount of time every time it attempts to send an update to the cloud. Unlike previous applications, I have other things sharing the main loop (none of those are blocking), like polling buttons, fading leds, running a state machine, timers, etc, etc. - and for duration of the send method nothing is responsive.
My initial question is - is this expected or am I doing something obviously wrong?

Happy to post snippets of code, etc. and help in whichever way.

Thank you!

Welcome!

Not expected at all. ST_Anything is designed to be as non-blocking as possible. I would try a hard reboot of your ST Hub (remove batteries if a v2 hub) and see if performance is improved. ST_Anything only communicates with the ST Hub, which in turn communicates with the ST Cloud.

Dan,
Finely its worked. I had to delete and reinstall it again. Also reset the Hub.
Doesn’t allow any entry in timeout (900) but it works
Do you think its time to move to Habitat? I am thinking about.

Another question, maybe not related.
Once awhile NodeMCU misses to execute automation. Do have any idea if some boards have more issues? I think maybe power supply or some other oscillation.

Only you can make that call.

Please explain what you mean by “misses to execute automation”. A good quality power supply is important, as well as a strong, reliable WiFi connection.

Dan,
Thanks.
Now I don’t see RSS anymore (new app) so can’t tell Wifi condition but 2 Node MCU at same location one can miss a automation ( on/off at certain time).
Do you suggestion for any good power supply?
Also my servo and MCU both runs from same supply.

On servo sketch for MCU is it possible to add on/off from local even when no wifi?

Not particularly. It depends on what loads you’re driving.

Depending on how you wired it, this could be an issue. The Servo needs to be powered directly from the power supply, not from the NodeMCU board.

I am not sure how well the board behaves when there is no WiFi. You could look at the ST_Anything_Relays_Butttons_ESP8266.ino EXAMPLE sketch to get some ideas for how to add local pushbutton control to a sketch.

Dan thanks.

Dan,
I also saw this;
ST_Anything_WindowShade_ESP8266WiFi /

Where can I find more description about this? does this also work with limit switches.

In the sketch itself…

//            ST_Anything_WindowShade implements the following ST Capabilities as a demo of what is possible with a single NodeMCU ESP8266
//              - 1 x Window Shade device using two timed digital outputs

No

Thanks Dan

1 Like

Dan,
Try to load the sketch but its missing in library,

how to update?