Re: [mh] rrd for HVAC data?
H Plato <[email protected]> Sat, 20 Nov 2021 13:04:02 -0700
| Newsgroups | gmane.comp.misc.misterhouse.user |
|---|---|
| Message-ID | <[email protected]> |
I should be a bit more helpful. I update a bunch of the weather hashes whenever HVAC states change:
usercode:
# Category = HVAC
if (($Startup) or ($Reload)) {
my $state_main = state $thermostat_main;
my $state_upper = state $thermostat_upper;
my $state_basement = state $thermostat_basement_hvac_state;
if (lc $state_main eq "heating") {
$Weather{TempSpare7} = int(1);
$Weather{TempSpare8} = int(0);
} elsif (lc $state_main eq "cooling") {
$Weather{TempSpare7} = int(0);
$Weather{TempSpare8} = int(1);
} else {
$Weather{TempSpare7} = int(0);
$Weather{TempSpare8} = int(0);
}
if (lc $state_upper eq "heating") {
$Weather{TempSpare9} = int(1);
$Weather{TempSpare10} = int(0);
} elsif (lc $state_upper eq "cooling") {
$Weather{TempSpare9} = int(0);
$Weather{TempSpare10} = int(1);
} else {
$Weather{TempSpare9} = int(0);
$Weather{TempSpare10} = int(0);
}
if (lc $state_basement eq "heating") {
$Weather{TempSpare11} = int(1);
} else {
$Weather{TempSpare11} = int(0);
}
$Weather{HumidSpare2} = state $thermostat_basement_humid;
$Weather{TempSpare12} = state $thermostat_basement_temp;
$Weather{HumidSpare3} = state $thermostat_main_hum_sp;
$Weather{HumidSpare4} = state $thermostat_upper_hum_sp;
print_log "HVAC RRD: Setting RRDs Main-Heat:$Weather{TempSpare7} Main-Cool:$Weather{TempSpare8}";
print_log "HVAC RRD: Setting RRDs Upper-Heat:$Weather{TempSpare9} Upper-Cool:$Weather{TempSpare10}";
print_log "HVAC RRD: Setting RRDs Basement-Heat:$Weather{TempSpare11} Humidity:$Weather{HumidSpare2} Temp:$Weather{TempSpare12}";
print_log "HVAC RRD: Setting RRDs Basement Bedroom Temp:$Weather{TempSpare13}";
}
if (my $state = state_changed $thermostat_upper) {
if (lc $state eq "heating") {
$Weather{TempSpare9} = int(1);
$Weather{TempSpare10} = int(0);
} elsif (lc $state eq "cooling") {
$Weather{TempSpare9} = int(0);
$Weather{TempSpare10} = int(1);
} else {
$Weather{TempSpare9} = int(0);
$Weather{TempSpare10} = int(0);
}
print_log "HVAC RRD: Setting RRDs for $state Upper-Heat:$Weather{TempSpare9} Upper-Cool:$Weather{TempSpare10}";
}
if (my $state = state_changed $thermostat_main) {
if (lc $state eq "heating") {
$Weather{TempSpare7} = int(1);
$Weather{TempSpare8} = int(0);
} elsif (lc $state eq "cooling") {
$Weather{TempSpare7} = int(0);
$Weather{TempSpare8} = int(1);
} else {
$Weather{TempSpare7} = int(0);
$Weather{TempSpare8} = int(0);
}
print_log "HVAC RRD: Setting RRDs for $state Main-Heat:$Weather{TempSpare7} Main-Cool:$Weather{TempSpare8}";
}
if (my $state = state_changed $thermostat_basement_hvac_state) {
if (lc $state eq "heating") {
$Weather{TempSpare11} = int(1);
} else {
$Weather{TempSpare11} = int(0);
}
print_log "HVAC RRD: Setting RRDs for $state Basement-Heat:$Weather{TempSpare11}";
}
if (my $state = state_changed $thermostat_basement_humid) {
$Weather{HumidSpare2} = $state;
print_log "HVAC RRD: db Setting humidity RRD for $state Basement";
}
if (my $state = state_changed $thermostat_basement_temp) {
$Weather{TempSpare12} = $state;
print_log "HVAC RRD: db Setting RRD temp for $Weather{TempSpare12} Basement";
}
if (my $state = state_changed $thermostat_main_hum_sp) {
$Weather{HumidSpare3} = $state;
print_log "HVAC RRD: db Setting RRD Humidity Setpoint for $Weather{HumidSpare3} main";
}
if (my $state = state_changed $thermostat_upper_hum_sp) {
$Weather{HumidSpare4} = $state;
print_log "HVAC RRD: db Setting RRD Humidity Setpoint for $Weather{HumidSpare4} upper";
}
Then I create an ia7_rrd_config.json to describe the RRD items and the groups:
{
"prefs" : {
"default_cf" :"AVERAGE",
"uom" : "celsius"
},
"ds" : {
"temp" : {
"type" : "temperature",
"label" : "Outside Temperature",
"color" : "#330099",
"round" : "1",
"group" : "outdoor_temp,temp"
},
"dew" : {
"type" : "temperature",
"label" : "Dew Point",
"color" : "#00ff00",
"round" : "1",
"group" : "outdoor_temp,temp"
},
"apparent" : {
"type" : "temperature",
"label" : "Apparent Temperature",
"color" : "#3300FF",
"round" : "1",
"group" : "outdoor_temp,temp"
},
"humid" : {
"type" : "humidity",
"label" : "Outside Humidity",
"color" : "#330099",
"round" : "1",
"group" : "outdoor_humid,humid"
},
"intemp" : {
"type" : "temperature",
"label" : "Room1",
"color" : "#2B65EC",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare1" : {
"type" : "temperature",
"label" : "Bedroom",
"color" : "#FF0000",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare2" : {
"type" : "temperature",
"label" : “Room2",
"color" : "#009933",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare3" : {
"type" : "temperature",
"label" : "Garage",
"color" : "#FBB117",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare4" : {
"type" : "temperature",
"label" : “Room3",
"color" : "#CC33CC",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare5" : {
"type" : "temperature",
"label" : "Room4",
"color" : "#00FF00",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare6" : {
"type" : "temperature",
"label" : "Freezer",
"color" : "#FF99CC",
"round" : "1",
"group" : "indoor_temp,temp"
},
"tempspare7" : {
"type" : "bar",
"label" : "Main Heating",
"color" : "red",
"cf" : "MAX",
"group" : "area,temp,indoor_temp"
},
"tempspare8" : {
"type" : "bar",
"label" : "Main Cooling",
"color" : "blue",
"cf" : "MAX",
"group" : "area"
},
"tempspare9" : {
"type" : "bar",
"label" : "Upper Heating",
"color" : "red",
"cf" : "MAX",
"group" : "area,temp,indoor_temp"
},
"tempspare10" : {
"type" : "bar",
"label" : "Upper Cooling",
"color" : "blue",
"cf" : "MAX",
"group" : "area,temp,indoor_temp"
},
"tempspare11" : {
"type" : "bar",
"label" : "Basement Heating",
"color" : "Orange",
"cf" : "MAX",
"group" : "area,temp,indoor_temp"
},
"tempspare12" : {
"type" : "temperature",
"label" : "Basement",
"color" : "#3EA055",
"round" : "1",
"group" : "indoor_temp,temp"
},
"inhumid" : {
"type" : "humidity",
"label" : "Room1",
"color" : "#990000",
"group" : "indoor_humid,humid"
},
"humidspare1" : {
"type" : "humidity",
"label" : "Bedroom",
"color" : "#FF0000",
"group" : "indoor_humid,humid"
},
"humidspare2" : {
"type" : "humidity",
"label" : "Basement",
"color" : "#440000",
"group" : "indoor_humid,humid"
},
"humidspare3" : {
"type" : "humidity",
"label" : "Main Setpoint",
"color" : "#444400",
"group" : "indoor_humid,humid"
},
"humidspare4" : {
"type" : "humidity",
"label" : "Upper Setpoint",
"color" : "#440044",
"group" : "indoor_humid,humid"
},
"humidspare9" : {
"type" : "solar",
"label" : "Solar Radiation",
"color" : "#FF0000",
"group" : "solar"
},
"speed" : {
"type" : "speed",
"label" : "Wind Speed",
"color" : "#330099",
"group" : "wind_speed"
},
"dir" : {
"type" : "direction",
"label" : "Wind Direction",
"color" : "#330099",
"group" : "wind_dir"
},
"press" : {
"type" : "pressure",
"label" : "Barometer",
"color" : "#330099",
"group" : "outside_press"
},
"rain" : {
"type" : "rain",
"label" : "Total Rain",
"color" : "#3300FF",
"group" : "rain"
},
"rate" : {
"type" : "rain",
"label" : "Rain Rate",
"color" : "#330099",
"group" : "rain_rate"
}
},
"options" : {
"legend": {
"show": "true"
},
"xaxis": {
"mode" : "time",
"timezone": "browser"
},
"grid": {
"hoverable" : "true"
},
"yaxes" : [{
"position" : "left"
},
{
"max" : "1",
"show" : "false",
"ticks" : 0
}],
"selection": {
"mode": "x"
}
},
"periods" : {
"1" : "6 hours,now-6hour",
"2" : "12 hours,now-12hour",
"3" : "1 day,now-1day",
"4" : "2 days,now-2day",
"5" : "1 week,now-1week",
"6" : "2 week,now-2week",
"7" : "1 month,now-1month",
"8" : "2 months,now-2month",
"9" : "6 months,now-6month",
"10" : "1 year,now-1year",
"11" : "2 years,now-2year",
"12" : "5 years,now-5year"
}
}
Then the URL to display the indoor temperatures:
http://mhip/ia7/#path=/rrd?now-6hour?indoor_temp
Hopefully this make a bit more sense
> On Nov 19, 2021, at 4:51 PM, H Plato <[email protected]> wrote:
>
> Yes indeed!! (Area shading is when the furnace is on), I also track set points, humidity and solar radiation.
>
> <PastedGraphic-1.tiff>
>
>> On Nov 19, 2021, at 3:27 PM, Tom MacLean <[email protected] <mailto:[email protected]>> wrote:
>>
>> Hi All.
>>
>> As I read our documentation for rrd, it looks like it hoovers up data from the weather hash. Is there any way to make it read other sorts of data, like indoor temperatures, HVAC set point, etc.?
>>
>> -thanks
>>
>>
>> ________________________________________________________
>> To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users <https://lists.sourceforge.net/lists/listinfo/misterhouse-users>
>>
>
________________________________________________________
To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users