diff --git a/main/ZgatewayRTL_433.ino b/main/ZgatewayRTL_433.ino index 350944f..acb0b4f 100644 --- a/main/ZgatewayRTL_433.ino +++ b/main/ZgatewayRTL_433.ino @@ -152,6 +152,16 @@ void launchRTL_433Discovery(bool overrideDiscovery) { (char*)idWoKey.c_str(), "", pdevice->modelName, (char*)idWoKey.c_str(), false, // device name, device manufacturer, device model, device ID, retain "" //State Class ); + } else if (strcmp(parameters[i][0], "state") == 0 && (strcmp(pdevice->modelName, "Nexa-Security") == 0 || strcmp(pdevice->modelName, "Brennenstuhl-RCS2044") == 0 || strcmp(pdevice->modelName, "Proove-Security") == 0 || strcmp(pdevice->modelName, "Waveman-Switch") == 0)) { + createDiscovery("binary_sensor", //set Type + (char*)topic.c_str(), parameters[i][1], pdevice->uniqueId, //set state_topic,name,uniqueId + "", parameters[i][3], (char*)value_template.c_str(), //set availability_topic,device_class,value_template, + "ON", "OFF", parameters[i][2], //set,payload_on,payload_off,unit_of_meas, + 0, //set off_delay + "", "", false, "", //set,payload_available,payload_not available ,is a gateway entity, command topic + (char*)idWoKey.c_str(), "", pdevice->modelName, (char*)idWoKey.c_str(), false, // device name, device manufacturer, device model, device ID, retain + "" //State Class + ); } else if (strcmp(parameters[i][0], "strike_count") == 0) { createDiscovery("sensor", //set Type (char*)topic.c_str(), parameters[i][1], pdevice->uniqueId, //set state_topic,name,uniqueId diff --git a/main/config_RF.h b/main/config_RF.h index 90a7876..a2c3687 100644 --- a/main/config_RF.h +++ b/main/config_RF.h @@ -80,56 +80,59 @@ struct RTL_433device { bool isDisc; }; -const char parameters[50][4][24] = { +const char parameters[53][4][24] = { // RTL_433 key, name, unit, device_class - {"temperature_C", "temperature", "°C", "temperature"}, - {"temperature_1_C", "temperature", "°C", "temperature"}, - {"temperature_2_C", "temperature", "°C", "temperature"}, - {"temperature_F", "temperature", "°F", "temperature"}, - {"time", "timestamp", "", "timestamp"}, - {"battery_ok", "battery", "%", "battery"}, + {"alarm", "alarm", "", ""}, {"battery_mV", "battery", "mV", "voltage"}, - {"humidity", "humidity", "%", "humidity"}, - {"moisture", "moisture", "%", "humidity"}, - {"pressure_hPa", "pressure", "hPa", "pressure"}, - {"pressure_kPa", "pressure", "kPa", "pressure"}, - {"wind_speed_km_h", "wind speed", "km/h", "wind_speed"}, - {"wind_avg_km_h", "wind average", "km/h", "wind_speed"}, - {"wind_avg_mi_h", "wind average", "mi/h", "wind_speed"}, - {"wind_avg_m_s", "wind average", "m/s", "wind_speed"}, - {"wind_speed_m_s", "wind speed", "m/s", "wind_speed"}, - {"gust_speed_km_h", "gust speed", "km/h", "wind_speed"}, - {"wind_max_km_h", "wind max", "km/h", "wind_speed"}, - {"wind_max_m_s", "wind max", "m/s", "wind_speed"}, - {"gust_speed_m_s", "gust speed", "m/s", "wind_speed"}, - {"wind_dir_deg", "wind direction", "°", ""}, - {"rain_mm", "rain", "mm", "precipitation"}, - {"rain_rate_mm_h", "rain", "mm/h", "precipitation_intensity"}, - {"rain_in", "rain", "in", "precipitation"}, - {"rain_rate_in_h", "rain", "in/h", "precipitation_intensity"}, - {"rssi", "rssi", "dB", "signal_strength"}, - {"snr", "snr", "dB", ""}, - {"noise", "noise", "dB", "sound_pressure"}, + {"battery_ok", "battery", "%", "battery"}, + {"co2_ppm", "Carbon Dioxide", "ppm", "carbon_dioxide"}, {"depth_cm", "depth", "cm", "distance"}, - {"power_W", "power", "W", "power"}, + {"estimated_pm10_0_ug_m3", "estimated PM10", "μg/m³", "pm10"}, + {"event", "Status", "", "moisture"}, + {"group", "Group", "", ""}, + {"gust_speed_km_h", "gust speed", "km/h", "wind_speed"}, + {"gust_speed_m_s", "gust speed", "m/s", "wind_speed"}, + {"humidity", "humidity", "%", "humidity"}, {"light_lux", "light", "lx", "illuminance"}, {"lux", "lux", "lx", "illuminance"}, - {"uvi", "UVI", "UV index", ""}, - {"uv", "UV", "UV level", ""}, - {"storm_dist", "storm distance", "mi", "distance"}, - {"storm_dist_km", "storm distance", "km", "distance"}, - {"strike_count", "strike count", "", ""}, // from rtl_433_mqtt_hass.py - {"strike_distance", "strike distance", "mi", "distance"}, - {"strike_distance_km", "strike distance", "km", "distance"}, - {"co2_ppm", "Carbon Dioxide", "ppm", "carbon_dioxide"}, - {"pm2_5_ug_m3", "PM2.5", "μg/m³", "pm25"}, - {"pm10_ug_m3", "PM10", "μg/m³", "pm10"}, - {"estimated_pm10_0_ug_m3", "estimated PM10", "μg/m³", "pm10"}, - {"pm1_ug_m3", "PM1", "μg/m³", "pm1"}, - {"tamper", "tamper", "", ""}, - {"alarm", "alarm", "", ""}, + {"moisture", "moisture", "%", "humidity"}, {"motion", "motion", "", "motion"}, - {"event", "Status", "", "moisture"}}; + {"noise", "noise", "dB", "sound_pressure"}, + {"pm1_ug_m3", "PM1", "μg/m³", "pm1"}, + {"pm10_ug_m3", "PM10", "μg/m³", "pm10"}, + {"pm2_5_ug_m3", "PM2.5", "μg/m³", "pm25"}, + {"power_W", "power", "W", "power"}, + {"pressure_hPa", "pressure", "hPa", "pressure"}, + {"pressure_kPa", "pressure", "kPa", "pressure"}, + {"rain_in", "rain", "in", "precipitation"}, + {"rain_mm", "rain", "mm", "precipitation"}, + {"rain_rate_in_h", "rain", "in/h", "precipitation_intensity"}, + {"rain_rate_mm_h", "rain", "mm/h", "precipitation_intensity"}, + {"rssi", "rssi", "dB", "signal_strength"}, + {"snr", "snr", "dB", ""}, + {"state", "State", "", ""}, + {"storm_dist_km", "storm distance", "km", "distance"}, + {"storm_dist", "storm distance", "mi", "distance"}, + {"strike_count", "strike count", "", ""}, // from rtl_433_mqtt_hass.py + {"strike_distance_km", "strike distance", "km", "distance"}, + {"strike_distance", "strike distance", "mi", "distance"}, + {"tamper", "tamper", "", ""}, + {"temperature_1_C", "temperature", "°C", "temperature"}, + {"temperature_2_C", "temperature", "°C", "temperature"}, + {"temperature_C", "temperature", "°C", "temperature"}, + {"temperature_F", "temperature", "°F", "temperature"}, + {"time", "timestamp", "", "timestamp"}, + {"unit", "Unit", "", ""}, + {"uv", "UV", "UV level", ""}, + {"uvi", "UVI", "UV index", ""}, + {"wind_avg_km_h", "wind average", "km/h", "wind_speed"}, + {"wind_avg_m_s", "wind average", "m/s", "wind_speed"}, + {"wind_avg_mi_h", "wind average", "mi/h", "wind_speed"}, + {"wind_dir_deg", "wind direction", "°", ""}, + {"wind_max_km_h", "wind max", "km/h", "wind_speed"}, + {"wind_max_m_s", "wind max", "m/s", "wind_speed"}, + {"wind_speed_km_h", "wind speed", "km/h", "wind_speed"}, + {"wind_speed_m_s", "wind speed", "m/s", "wind_speed"}}; # endif # ifdef RTL_433_DISCOVERY_LOGGING # define DISCOVERY_TRACE_LOG(...) Log.trace(__VA_ARGS__)