Skip to content

Commit 38563f6

Browse files
committed
Merge branch 'MyDomoticz' of /home/domoshare into MyDomoticz
2 parents 6810f72 + 6629c95 commit 38563f6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+2425
-1111
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ hardware/MQTT.cpp
207207
hardware/MySensorsBase.cpp
208208
hardware/MySensorsSerial.cpp
209209
hardware/MySensorsTCP.cpp
210-
hardware/NestThermostat.cpp
210+
hardware/Nest.cpp
211211
hardware/NetatmoWeatherStation.cpp
212212
hardware/OpenZWave.cpp
213213
hardware/openzwave/control_panel/ozwcp.cpp

History.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
1-
Version 2.xxxx
1+
Version 2.3xxx
22
- Fixed: Log display in webgui for log items containing multiple lines
33
- Fixed: Edit Light/Switch Security sensors protected checkbox
44
- Fixed: Alert Sensor, displaying sValue again
55
- Fixed: EventSystem, now also handling sensors that only uses numbers instead of strings for data
66
- Fixed: S0 Meter, fix for reloading totals of (#179)
7+
- Fixed: Nest Thermostat, setting set point in Fahrenheit
8+
- Implemented: Option to transfer old Percentage sensors to new Percentage sensors
9+
- Implemented: Macedonian translation (Big thanks to jocogvg!!!)
10+
- Implemented: RFXCom support for Legrand CAD
11+
- Updated: OpenZWave, configuration files
12+
- Changed: OpenZWave, Ranamed internally 'Color Control' to 'Color"
13+
- Changed: OpenZWave, Control Panel log starts displaying from the end when entering for the first time
14+
- Fixed: Dummy RGB sensor creation (was created with wrong ID)
15+
- Fixed: RGB sensor now also uses the RGB popup system
16+
- Implemented: Nest Protect
17+
- Implemented: MySensors, Implemented V_CUSTOM
18+
- Changed: EventSystem, don't process unused devices
19+
- Implemented: MySensors, Option to Enable/Disable using ACK per Child sensor from the MySensors hardware setup page
20+
- Implemented: MySensors, Option to Name a node
21+
- Implemented: Netatmo, support for multiple weather stations (from the weathermap) and multiple rain sensors
22+
- Changed: OpenZwave, not sending cold-white in the colorclass, solved issues on different zipato bulbs
23+
- Changed: OpenZwave, kWh sensor now maybe compatible with more hardware
724

825
Version 2.3530 (November 1th 2015)
926
- Implemented: Degree Days in Temperature report

hardware/DomoticzHardware.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class CDomoticzHardwareBase
9595
friend class KMTronic433;
9696
friend class SolarMaxTCP;
9797
friend class CPinger;
98-
friend class CNestThermostat;
98+
friend class CNest;
9999
friend class CThermosmart;
100100
friend class CKodi;
101101
friend class CNetAtmoWeatherStation;

hardware/Dummy.cpp

Lines changed: 115 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -86,164 +86,173 @@ namespace http {
8686
{
8787
case 1:
8888
//Pressure (Bar)
89-
{
90-
std::string rID = std::string(ID);
91-
padLeft(rID, 8, '0');
92-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypePressure, 12, 255, 0, "0.0", devname);
93-
bCreated = true;
94-
}
95-
break;
89+
{
90+
std::string rID = std::string(ID);
91+
padLeft(rID, 8, '0');
92+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypePressure, 12, 255, 0, "0.0", devname);
93+
bCreated = true;
94+
}
95+
break;
9696
case 2:
9797
//Percentage
98-
{
99-
std::string rID = std::string(ID);
100-
padLeft(rID, 8, '0');
101-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypePercentage, 12, 255, 0, "0.0", devname);
102-
bCreated = true;
103-
}
104-
break;
98+
{
99+
std::string rID = std::string(ID);
100+
padLeft(rID, 8, '0');
101+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypePercentage, 12, 255, 0, "0.0", devname);
102+
bCreated = true;
103+
}
104+
break;
105105
case 3:
106106
//Gas
107107
m_sql.UpdateValue(HwdID, ID, 1, pTypeP1Gas, sTypeP1Gas, 12, 255, 0, "0", devname);
108108
bCreated = true;
109109
break;
110110
case 4:
111111
//Voltage
112-
{
113-
std::string rID = std::string(ID);
114-
padLeft(rID, 8, '0');
115-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeVoltage, 12, 255, 0, "0.000", devname);
116-
bCreated = true;
117-
}
118-
break;
112+
{
113+
std::string rID = std::string(ID);
114+
padLeft(rID, 8, '0');
115+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeVoltage, 12, 255, 0, "0.000", devname);
116+
bCreated = true;
117+
}
118+
break;
119119
case 5:
120120
//Text
121-
{
122-
std::string rID = std::string(ID);
123-
padLeft(rID, 8, '0');
124-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeTextStatus, 12, 255, 0, "Hello World", devname);
125-
bCreated = true;
126-
}
127-
break;
121+
{
122+
std::string rID = std::string(ID);
123+
padLeft(rID, 8, '0');
124+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeTextStatus, 12, 255, 0, "Hello World", devname);
125+
bCreated = true;
126+
}
127+
break;
128128
case 6:
129129
//Switch
130-
{
131-
unsigned char ID1 = (unsigned char)((nid & 0xFF000000) >> 24);
132-
unsigned char ID2 = (unsigned char)((nid & 0x00FF0000) >> 16);
133-
unsigned char ID3 = (unsigned char)((nid & 0x0000FF00) >> 8);
134-
unsigned char ID4 = (unsigned char)((nid & 0x000000FF));
135-
sprintf(ID, "%X%02X%02X%02X", ID1, ID2, ID3, ID4);
136-
m_sql.UpdateValue(HwdID, ID, 1, pTypeLighting2, sTypeAC, 12, 255, 0, "15", devname);
137-
bCreated = true;
138-
}
139-
break;
130+
{
131+
unsigned char ID1 = (unsigned char)((nid & 0xFF000000) >> 24);
132+
unsigned char ID2 = (unsigned char)((nid & 0x00FF0000) >> 16);
133+
unsigned char ID3 = (unsigned char)((nid & 0x0000FF00) >> 8);
134+
unsigned char ID4 = (unsigned char)((nid & 0x000000FF));
135+
sprintf(ID, "%X%02X%02X%02X", ID1, ID2, ID3, ID4);
136+
m_sql.UpdateValue(HwdID, ID, 1, pTypeLighting2, sTypeAC, 12, 255, 0, "15", devname);
137+
bCreated = true;
138+
}
139+
break;
140140
case 7:
141141
//Alert
142142
m_sql.UpdateValue(HwdID, ID, 1, pTypeGeneral, sTypeAlert, 12, 255, 0, "No Alert!", devname);
143143
bCreated = true;
144144
break;
145145
case 8:
146146
//Thermostat Setpoint
147-
{
148-
unsigned char ID1 = (unsigned char)((nid & 0xFF000000) >> 24);
149-
unsigned char ID2 = (unsigned char)((nid & 0x00FF0000) >> 16);
150-
unsigned char ID3 = (unsigned char)((nid & 0x0000FF00) >> 8);
151-
unsigned char ID4 = (unsigned char)((nid & 0x000000FF));
152-
sprintf(ID, "%X%02X%02X%02X", ID1, ID2, ID3, ID4);
153-
}
154-
m_sql.UpdateValue(HwdID, ID, 1, pTypeThermostat, sTypeThermSetpoint, 12, 255, 0, "20.5", devname);
155-
bCreated = true;
156-
break;
147+
{
148+
unsigned char ID1 = (unsigned char)((nid & 0xFF000000) >> 24);
149+
unsigned char ID2 = (unsigned char)((nid & 0x00FF0000) >> 16);
150+
unsigned char ID3 = (unsigned char)((nid & 0x0000FF00) >> 8);
151+
unsigned char ID4 = (unsigned char)((nid & 0x000000FF));
152+
sprintf(ID, "%X%02X%02X%02X", ID1, ID2, ID3, ID4);
153+
}
154+
m_sql.UpdateValue(HwdID, ID, 1, pTypeThermostat, sTypeThermSetpoint, 12, 255, 0, "20.5", devname);
155+
bCreated = true;
156+
break;
157157
case 9:
158158
//Current/Ampere
159159
m_sql.UpdateValue(HwdID, ID, 1, pTypeCURRENT, sTypeELEC1, 12, 255, 0, "0.0;0.0;0.0", devname);
160160
bCreated = true;
161161
break;
162162
case 10:
163163
//Sound Level
164-
{
165-
std::string rID = std::string(ID);
166-
padLeft(rID, 8, '0');
167-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeSoundLevel, 12, 255, 0, "65", devname);
168-
bCreated = true;
169-
}
170-
break;
164+
{
165+
std::string rID = std::string(ID);
166+
padLeft(rID, 8, '0');
167+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeSoundLevel, 12, 255, 0, "65", devname);
168+
bCreated = true;
169+
}
170+
break;
171171
case 11:
172172
//Barometer (hPa)
173-
{
174-
std::string rID = std::string(ID);
175-
padLeft(rID, 8, '0');
176-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeBaro, 12, 255, 0, "1021.34;0", devname);
177-
bCreated = true;
178-
}
179-
break;
173+
{
174+
std::string rID = std::string(ID);
175+
padLeft(rID, 8, '0');
176+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeBaro, 12, 255, 0, "1021.34;0", devname);
177+
bCreated = true;
178+
}
179+
break;
180180
case 12:
181181
//Visibility (km)
182182
m_sql.UpdateValue(HwdID, ID, 1, pTypeGeneral, sTypeVisibility, 12, 255, 0, "10.3", devname);
183183
bCreated = true;
184184
break;
185185
case 13:
186186
//Distance (cm)
187-
{
188-
std::string rID = std::string(ID);
189-
padLeft(rID, 8, '0');
190-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeDistance, 12, 255, 0, "123.4", devname);
191-
bCreated = true;
192-
}
193-
break;
187+
{
188+
std::string rID = std::string(ID);
189+
padLeft(rID, 8, '0');
190+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeDistance, 12, 255, 0, "123.4", devname);
191+
bCreated = true;
192+
}
193+
break;
194194
case 14: //Counter Incremental
195195
m_sql.UpdateValue(HwdID, ID, 1, pTypeGeneral, sTypeCounterIncremental, 12, 255, 0, "0", devname);
196196
bCreated = true;
197197
break;
198198
case 15:
199199
//Soil Moisture
200-
{
201-
std::string rID = std::string(ID);
202-
padLeft(rID, 8, '0');
203-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeSoilMoisture, 12, 255, 3, devname);
204-
bCreated = true;
205-
}
206-
break;
200+
{
201+
std::string rID = std::string(ID);
202+
padLeft(rID, 8, '0');
203+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeSoilMoisture, 12, 255, 3, devname);
204+
bCreated = true;
205+
}
206+
break;
207207
case 16:
208208
//Leaf Wetness
209-
{
210-
std::string rID = std::string(ID);
211-
padLeft(rID, 8, '0');
212-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeLeafWetness, 12, 255, 2, devname);
213-
bCreated = true;
214-
}
215-
break;
209+
{
210+
std::string rID = std::string(ID);
211+
padLeft(rID, 8, '0');
212+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeLeafWetness, 12, 255, 2, devname);
213+
bCreated = true;
214+
}
215+
break;
216216
case 17:
217217
//Thermostat Clock
218-
{
219-
std::string rID = std::string(ID);
220-
padLeft(rID, 8, '0');
221-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeZWaveClock, 12, 255, 0, "24:12:00", devname);
222-
bCreated = true;
223-
}
224-
break;
218+
{
219+
std::string rID = std::string(ID);
220+
padLeft(rID, 8, '0');
221+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeZWaveClock, 12, 255, 0, "24:12:00", devname);
222+
bCreated = true;
223+
}
224+
break;
225225
case 18:
226226
//kWh
227-
{
228-
std::string rID = std::string(ID);
229-
padLeft(rID, 8, '0');
230-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeKwh, 12, 255, 0, "0;0.0", devname);
231-
bCreated = true;
232-
}
233-
break;
227+
{
228+
std::string rID = std::string(ID);
229+
padLeft(rID, 8, '0');
230+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeKwh, 12, 255, 0, "0;0.0", devname);
231+
bCreated = true;
232+
}
233+
break;
234234
case 19:
235235
//Current (Single)
236-
{
237-
std::string rID = std::string(ID);
238-
padLeft(rID, 8, '0');
239-
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeCurrent, 12, 255, 0, "6.4", devname);
240-
bCreated = true;
241-
}
242-
break;
236+
{
237+
std::string rID = std::string(ID);
238+
padLeft(rID, 8, '0');
239+
m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeGeneral, sTypeCurrent, 12, 255, 0, "6.4", devname);
240+
bCreated = true;
241+
}
242+
break;
243243
case pTypeLimitlessLights:
244244
//RGB switch
245-
m_sql.UpdateValue(HwdID, ID, 1, pTypeLimitlessLights, sTypeLimitlessRGB, 12, 255, 1, devname);
246-
bCreated = true;
245+
{
246+
std::string rID = std::string(ID);
247+
padLeft(rID, 8, '0');
248+
unsigned long long devidx = m_sql.UpdateValue(HwdID, rID.c_str(), 1, pTypeLimitlessLights, sTypeLimitlessRGB, 12, 255, 1, devname);
249+
if (devidx != -1)
250+
{
251+
//Set switch type to dimmer
252+
m_sql.safe_query("UPDATE DeviceStatus SET SwitchType=%d WHERE (ID==%llu)", STYPE_Dimmer, devidx);
253+
}
254+
bCreated = true;
255+
}
247256
break;
248257
case pTypeTEMP:
249258
m_sql.UpdateValue(HwdID, ID, 1, pTypeTEMP, sTypeTEMP1, 12, 255, 0, "0.0", devname);

0 commit comments

Comments
 (0)