Subversion Repositories heating

Rev

Rev 46 | Rev 48 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 46 Rev 47
Line 152... Line 152...
152
		akt = HeatConf;
152
		akt = HeatConf;
153
 
153
 
154
		if (HtmlServer->hasChanged())
154
		if (HtmlServer->hasChanged())
155
		{
155
		{
156
			html::HTCONF *hta;
156
			html::HTCONF *hta;
-
 
157
			string ans;
157
 
158
 
158
			glb_minimal = HtmlServer->getGlbAbsent();
159
			glb_minimal = HtmlServer->getGlbAbsent();
159
			glb_night = HtmlServer->getGlbNight();
160
			glb_night = HtmlServer->getGlbNight();
160
			onoff = HtmlServer->getRunMode();
161
			onoff = HtmlServer->getRunMode();
-
 
162
			ans = "CONFIG:GLOBAL NIGHT:" + doubleToString(glb_night, 1) + ";";
-
 
163
			answer(ans);
-
 
164
			ans = "CONFIG:GLOBAL MINIMAL:" + doubleToString(glb_minimal, 1) + ";";
-
 
165
			answer(ans);
-
 
166
			ans = "POWER:" + (onoff) ? "ON;" : "OFF;";
-
 
167
			answer(ans);
-
 
168
			
161
			hta = HtmlServer->getHConfig();
169
			hta = HtmlServer->getHConfig();
162
 
170
 
163
			while (hta)
171
			while (hta)
164
			{
172
			{
165
				akt = HeatConf;
173
				akt = HeatConf;
166
 
174
 
167
				while (akt)
175
				while (akt)
168
				{
176
				{
169
					if (akt->rnum == hta->rnum)
177
					if (akt->rnum == hta->rnum)
170
					{
178
					{
-
 
179
						stringstream stream;
-
 
180
 
171
						akt->soll = hta->soll;
181
						akt->soll = hta->soll;
172
						akt->night = hta->night;
182
						akt->night = hta->night;
173
						akt->minimal = hta->minimal;
183
						akt->minimal = hta->minimal;
174
						akt->start = hta->start1;
184
						akt->start = hta->start1;
175
						akt->end = hta->end1;
185
						akt->end = hta->end1;
176
						akt->wstart = hta->start2;
186
						akt->wstart = hta->start2;
177
						akt->wend = hta->end2;
187
						akt->wend = hta->end2;
-
 
188
						stream << "CONFIG:ROOM:" << akt->rnum << ":" << string(akt->rname) << ":" << fixed <<
-
 
189
						setprecision(1) << akt->soll << ":" << akt->night << ":" <<
-
 
190
						akt->minimal << ":" << timeToStr(akt->start) << ":" << timeToStr(akt->end) << ":" <<
-
 
191
						timeToStr(akt->wstart) << ":" << timeToStr(akt->wend) << ";";
-
 
192
						answer(stream.str());
178
						break;
193
						break;
179
					}
194
					}
180
 
195
 
181
					akt = akt->next;
196
					akt = akt->next;
182
				}
197
				}
Line 209... Line 224...
209
			i = 0;
224
			i = 0;
210
			akt = HeatConf;
225
			akt = HeatConf;
211
 
226
 
212
			while (akt)
227
			while (akt)
213
			{
228
			{
214
				answer("IST:" + itostring(akt->rnum) + ":" + doubleToString(akt->ist, 2) + ";");
229
				answer("IST:" + itostring(akt->rnum) + ":" + doubleToString(akt->ist, 1) + ";");
215
				akt = akt->next;
230
				akt = akt->next;
216
			}
231
			}
217
		}
232
		}
218
 
233
 
219
		sleep(1);
234
		sleep(1);
Line 289... Line 304...
289
			sqlite3_close(db);
304
			sqlite3_close(db);
290
			return akt->soll;
305
			return akt->soll;
291
		}
306
		}
292
 
307
 
293
		akt->soll += 0.5;
308
		akt->soll += 0.5;
294
		query = "update heating set soll = " + doubleToString(akt->soll, 2) + " where id = " + itostring(room);
309
		query = "update heating set soll = " + doubleToString(akt->soll, 1) + " where id = " + itostring(room);
295
 
310
 
296
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
311
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
297
		{
312
		{
298
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
313
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
299
			sqlite3_free(zErrMsg);
314
			sqlite3_free(zErrMsg);
Line 336... Line 351...
336
			sqlite3_close(db);
351
			sqlite3_close(db);
337
			return akt->soll;
352
			return akt->soll;
338
		}
353
		}
339
 
354
 
340
		akt->soll -= 0.5;
355
		akt->soll -= 0.5;
341
		query = "update heating set soll = " + doubleToString(akt->soll, 2) + " where id = " + itostring(room);
356
		query = "update heating set soll = " + doubleToString(akt->soll, 1) + " where id = " + itostring(room);
342
 
357
 
343
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
358
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
344
		{
359
		{
345
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
360
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
346
			sqlite3_free(zErrMsg);
361
			sqlite3_free(zErrMsg);
Line 383... Line 398...
383
	}
398
	}
384
 
399
 
385
	if (room > 0 && (akt = findRoom(room)) != nullptr)
400
	if (room > 0 && (akt = findRoom(room)) != nullptr)
386
	{
401
	{
387
		akt->soll = val;
402
		akt->soll = val;
388
		query = "update heating set soll = " + doubleToString(val, 2) + " where id = " + itostring(room);
403
		query = "update heating set soll = " + doubleToString(val, 1) + " where id = " + itostring(room);
389
 
404
 
390
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
405
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
391
		{
406
		{
392
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
407
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
393
			sqlite3_free(zErrMsg);
408
			sqlite3_free(zErrMsg);
394
			sqlite3_close(db);
409
			sqlite3_close(db);
395
			return;
410
			return;
396
		}
411
		}
397
 
412
 
398
		query = "SOLL:" + itostring(room) + ":" + doubleToString(val, 2) + ";";
413
		query = "SOLL:" + itostring(room) + ":" + doubleToString(val, 1) + ";";
399
		answer(query);
414
		answer(query);
400
	}
415
	}
401
 
416
 
402
	sqlite3_close(db);
417
	sqlite3_close(db);
403
}
418
}
Line 426... Line 441...
426
	}
441
	}
427
 
442
 
428
	if (room > 0 && (akt = findRoom(room)) != nullptr)
443
	if (room > 0 && (akt = findRoom(room)) != nullptr)
429
	{
444
	{
430
		akt->night = val;
445
		akt->night = val;
431
		query = "update heating set night = " + doubleToString(val, 2) + " where id = " + itostring(room);
446
		query = "update heating set night = " + doubleToString(val, 1) + " where id = " + itostring(room);
432
 
447
 
433
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
448
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
434
		{
449
		{
435
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
450
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
436
			sqlite3_free(zErrMsg);
451
			sqlite3_free(zErrMsg);
437
			sqlite3_close(db);
452
			sqlite3_close(db);
438
			return;
453
			return;
439
		}
454
		}
440
 
455
 
441
		query = "NIGHT:" + itostring(room) + ":" + doubleToString(val, 2) + ";";
456
		query = "NIGHT:" + itostring(room) + ":" + doubleToString(val, 1) + ";";
442
		answer(query);
457
		answer(query);
443
	}
458
	}
444
	else if (room == 0)
459
	else if (room == 0)
445
	{
460
	{
446
		glb_night = val;
461
		glb_night = val;
447
		query = "update glbheat set night = " + doubleToString(val, 2);
462
		query = "update glbheat set night = " + doubleToString(val, 1);
448
 
463
 
449
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
464
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
450
		{
465
		{
451
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
466
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
452
			sqlite3_free(zErrMsg);
467
			sqlite3_free(zErrMsg);
453
			sqlite3_close(db);
468
			sqlite3_close(db);
454
			return;
469
			return;
455
		}
470
		}
456
 
471
 
457
		query = "CONFIG:GLOBAL NIGHT:" + doubleToString(val, 2) + ";";
472
		query = "CONFIG:GLOBAL NIGHT:" + doubleToString(val, 1) + ";";
458
		answer(query);
473
		answer(query);
459
	}
474
	}
460
 
475
 
461
	sqlite3_close(db);
476
	sqlite3_close(db);
462
}
477
}
Line 485... Line 500...
485
	}
500
	}
486
 
501
 
487
	if (room > 0 && (akt = findRoom(room)) != nullptr)
502
	if (room > 0 && (akt = findRoom(room)) != nullptr)
488
	{
503
	{
489
		akt->minimal = val;
504
		akt->minimal = val;
490
		query = "update heating set minimal = " + doubleToString(val, 2) + " where id = " + itostring(room);
505
		query = "update heating set minimal = " + doubleToString(val, 1) + " where id = " + itostring(room);
491
 
506
 
492
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
507
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
493
		{
508
		{
494
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
509
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
495
			sqlite3_free(zErrMsg);
510
			sqlite3_free(zErrMsg);
496
			sqlite3_close(db);
511
			sqlite3_close(db);
497
			return;
512
			return;
498
		}
513
		}
499
 
514
 
500
		query = "MINIMAL:" + itostring(room) + ":" + doubleToString(val, 2) + ";";
515
		query = "MINIMAL:" + itostring(room) + ":" + doubleToString(val, 1) + ";";
501
		answer(query);
516
		answer(query);
502
	}
517
	}
503
	else if (room == 0)
518
	else if (room == 0)
504
	{
519
	{
505
		glb_minimal = val;
520
		glb_minimal = val;
506
		query = "update glbheat set minimal = " + doubleToString(val, 2);
521
		query = "update glbheat set minimal = " + doubleToString(val, 1);
507
 
522
 
508
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
523
		if ((rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg)) != SQLITE_OK)
509
		{
524
		{
510
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
525
			syslog(LOG_WARNING, "SQL error [%s]: %s", query.c_str(), zErrMsg);
511
			sqlite3_free(zErrMsg);
526
			sqlite3_free(zErrMsg);
512
			sqlite3_close(db);
527
			sqlite3_close(db);
513
			return;
528
			return;
514
		}
529
		}
515
 
530
 
516
		query = "CONFIG:GLOBAL MINIMAL:" + doubleToString(val, 2) + ";";
531
		query = "CONFIG:GLOBAL MINIMAL:" + doubleToString(val, 1) + ";";
517
		answer(query);
532
		answer(query);
518
	}
533
	}
519
 
534
 
520
	sqlite3_close(db);
535
	sqlite3_close(db);
521
}
536
}
Line 856... Line 871...
856
		while (akt)
871
		while (akt)
857
		{
872
		{
858
			query = "insert into heating (id, name, soll, night, minimal, start, end, wstart, wend) values (";
873
			query = "insert into heating (id, name, soll, night, minimal, start, end, wstart, wend) values (";
859
			query.append(itostring(akt->rnum));
874
			query.append(itostring(akt->rnum));
860
			query.append(",\""+string(akt->rname)+"\"");
875
			query.append(",\""+string(akt->rname)+"\"");
861
			query.append(","+doubleToString(akt->soll, 2));
876
			query.append(","+doubleToString(akt->soll, 1));
862
			query.append(","+doubleToString(akt->night, 2));
877
			query.append(","+doubleToString(akt->night, 1));
863
			query.append(","+doubleToString(akt->minimal, 2));
878
			query.append(","+doubleToString(akt->minimal, 1));
864
			query.append(","+itostring(akt->start));
879
			query.append(","+itostring(akt->start));
865
			query.append(","+itostring(akt->end));
880
			query.append(","+itostring(akt->end));
866
			query.append(","+itostring(akt->wstart));
881
			query.append(","+itostring(akt->wstart));
867
			query.append(","+itostring(akt->wend));
882
			query.append(","+itostring(akt->wend));
868
			query.append(")");
883
			query.append(")");
Line 878... Line 893...
878
 
893
 
879
			akt = akt->next;
894
			akt = akt->next;
880
		}
895
		}
881
 
896
 
882
		query = "insert into glbheat (night, minimal, onoff) values (";
897
		query = "insert into glbheat (night, minimal, onoff) values (";
883
		query.append(doubleToString(glb_night, 2));
898
		query.append(doubleToString(glb_night, 1));
884
		query.append(","+doubleToString(glb_minimal, 2));
899
		query.append(","+doubleToString(glb_minimal, 1));
885
		query.append(","+itostring(onoff));
900
		query.append(","+itostring(onoff));
886
		query.append(")");
901
		query.append(")");
887
		rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg);
902
		rc = sqlite3_exec(db, query.c_str(), NULL, NULL, &zErrMsg);
888
		
903
		
889
		if (rc != SQLITE_OK)
904
		if (rc != SQLITE_OK)