IT WORKS!
Because I already have InfluxDB installed to graph some variables (https://guiott.com/?page_id=2828) it was enough to add this line in the influxdb.persist:
HVAC_Mode, HVAC_Schedule : strategy = everyChange, restoreOnStartup
IT WORKS!
Because I already have InfluxDB installed to graph some variables (https://guiott.com/?page_id=2828) it was enough to add this line in the influxdb.persist:
HVAC_Mode, HVAC_Schedule : strategy = everyChange, restoreOnStartup
Hoping to help someone else, Iām keeping to share my small steps here. Please let me know if it could be useful. Thatās still very raw but it works.
After the layout changes, Iāve added a check on the Thermostat version of the rule to perform an action when the temperature is outside a desired range, considering an hysteresis to define the comfort range where the heater/cooler is off. It avoids too frequent switches of the system.
The status of the system is reflected by the color of the knobs bars:
RED (HOT) = actual temperature is over the setpoint plus hysteresis
GREEN (COMFORT) = actual temperature is within comfort range
BLUE (COLD) = actual temperature is below the setpoint minus hysteresis
to do that something changed on ohscheduler.tpl.html and on ohscheduler.css.
The actions are on the rule āThermostat Actionā in the OHSchedulerHVAC.rules file.
It needs a further item for each gauge requiring a slight change in the widget configuration.
The knobs bars color is managed by the setKnobColor() function in
ohscheduler.js file.
The whole package can be retrieved here:
https://guiott.com/?attachment_id=3160
this is just a little add-on to the great original job from Geo.
Any comment is welcome.
Hi, firstly can I say I think this widget is brilliant, exactly what I was looking for. I have a small issue that I was hoping somebody may have seen before⦠Its the dials, for some reason my dials are displaying āin reverseā. So the colours are showing to the left for some reason and then when I try adjust a target temperature it then tries to jump to the right and it gets messy⦠I also canāt seem to very get to a target of zero⦠mine seems to stop at 18⦠really odd, as far as i can tell everything is working fine aside from that. I am getting events come through and the schedule changes register just fine.
⦠I did a bit of playing about with values⦠seems the problem manifests when you set the temp min to anything less than 1⦠not had time to work out why thats the case but thats at least how to reproduce it.
thanks
Paul
Hi, very nice job !! This is much better than mine
I am testing the use in these day and making some css changes to fit to my habpanel.
I am using the HVAC Scheduler as follow:
with HVAC Mode = Auto the HVAC_Target_Temp change following the next scheduling
with HVAC Mode = Manual the HVAC_Target_Temp is set according to the Knob widget manually
Now, moving from Manual to Auto mode the HVAC_target_temp remain as it is until the next schedule.
I would like that on HVAC Mode changed to āAUTOā the HVAC_Target_Temp is immediatelly set to the last scheduled temperature.
I will try to write a sample:
Suppose my schedule are Sun at 12:00 T=21°C and Sun at 22:00 T=18°C
It is Sun at 19:00, I was out and I set Manual mode with T=17°C, I came back home and I set Auto Mode:
Until 22:00 the Temp set remain 17°C, while I want it immediatelly set to 21°C.
My problem is how to calculate the ālast scheduled temperatureā ⦠Do you have any idea where I can start calculating the last scheduled temperature?
Regards
Lorenzo
this this out as well on OH2.4
however i have implemented only OnOff commands,
i was able to show and control manually light, however the schedule doesnt seems to work.
the onOff mode, and onoff schedule items set sucessfully,
i have implemented a schedule for certain amount of time, however nothing is fired.
logs shows when setting schedule/Manual or adding new schedule - the relevant strings mare updates:
OnOff_Mode
OnOff_Schedule
i added logInfo to the Strings - and they are updated fine:
10:03:00.001 [INFO ] [cript.update fired for scheduled rule] - update fired for scheduled rule 10:03:00.002 [INFO ] [.smarthome.model.script.onoffmode is:] - SCHEDULE 10:03:00.003 [INFO ] [thome.model.script.onOff Schedule is:] - {"CorridorDimmer_CorridorLight":{"D1":{"T1005":5}}} 10:03:00.003 [INFO ] [smarthome.model.script.OnOff Next is:] - NULL 10:03:00.004 [INFO ] [marthome.model.script.OnOff queue is:] - NULL
on 10:05 - the switch didnt turned on for 5 minutesā¦
cron seems to run fine.
any idea?
EDIT: Found the problem - forgot to add grpOnOff to the switch i controlā¦
now everything seems to work fine
Hello @nepotu
Thank you for taking the time to create this amazing timeline widget.
It took me a little while to get my heat around the basics, but itās certainly working for me now.
One tiny thought occured to me, Is it possible to add different states to the OnOff scheduler?
For example, if I wanted to use a colour picker or dimmer, it would be great if I could choose the colour or % for the ON command.
I did add different Mode options, but I donāt really understand if that field refers to the mode of the scheduler, or the operational Mode of the Item.
for example, I tried
["OFF","ON","0,100,100","250,100,100"]
My use case is for a colour picker and dimmer in a living room.
So that I can set different dim levels or colours in the room with your scheduler.
Thanks again,
Stuart
UPDATEā¦
A couple of hours after posting this, Iāve thought of another use caseā¦
It would be great to be able to schedule a radio channel changeā¦
ANYTHING to automatically avoid a certain DJ at 2pmā¦
Or 9am on a Sunday
Great work!
I would like to use the āmodifiedā widget from guiott, but somehow I didnāt get it to work as I want:
Topic 1
I tried to switch to german by modifing ohscheduler.js but this doesnāt change the language ?
Is there another way which I missed ?
Topic 2
There is only the button AGGIUNGI and not two, corresponding to ADD/DELETE
One Problem solved! Iāve to clear the browser cache
now it looks fine:
Still missing the ābuttonā for update/delete
any ideas, where to look ?
Hello everyone! For the past couple of months I had no spare time to continue the work on this widget or to assist those in need. Things will not change anytime soon, therefore you will have to rely on self study/trial and error.
@ All sorry for the delayed reply. I assume that most of you have already figured everything out until now.
@pmbsa The values appear in reverse because they are below the minimum value (18 if IIRC).
@Foxejoe The target temperature value will not change when the mode changes. The rule file initiates the target temperature (looks at the previous scheduled value) in the case it is not yet set. You have to change the rule in order to achieve what you desire. Look for ā// [fail-safe] Init target temperature if not setā and change the condition in the if statement or add the below block after it (havenāt tested this, but it should work, unless there is something wrong in the syntax).
if (prevVal !== null && HVAC_Mode.state == 'AUTO') {
logInfo('temperature-control.rules', 'Target temperature for item ' + targetItem.name + ' set to : ' + prevVal)
targetItem.postUpdate(prevVal)
}
@MDAR The Modes switch allows you how to run the automation (e.g. use a schedule to control the temperature or when to start some appliance for a defined amount of time). What you want to achieve implies lots of changes in all the files (widget and rules) because you need a 3rd mode (currently this widget supports OnOff appliances and Thermostat schedules) that will allow you to set additional āvariablesā in your schedule item (e.g. something similar to OnOff mode, but with another option to set the intensity/color).
@tarabas the Update/Delete option appears when you edit items from your schedule (double click on the values from Zeitplan tab). For this you will need to first add something in the schedule.
PS1: havenāt tested this with OH 2.4, hence I cannot guarantee it will work without some code changes.
PS2: I have posted the code to GitHub, hoping there will be someone more experienced to continue the work on this widget.
Hi -maybe somebody can help wih that:
Schedule is not working and there is erroe in log:
2019-03-17 21:40:00.353 [INFO ] [ome.model.script.onoff-control.rules] - OnOff Appliances control error: java.lang.ArrayIndexOutOfBoundsException: 1
Any Idea with this issue?
Just tested and it seems working like a charme ā¦
Thanks
Hello all, and THANK YOU @nepotu for developing this!
I feel like this could become something really important for the OH community(it certainly feels a void for me,I even considered nodeRED + bigtimer as i donāt use google calendar and hence caldav doesnāt suit me + well, google calendar is yet another cloud service).
Iāve installed your āwidgetā (itās reductive to call it that, as there are so many components involved) and got it to work āas expectedā(which is in and of itself testament to the quality of your work)
I am in the process of trying to adapt your āwidgetā to my needs, but i am nowehere near your level of understanding of programming, hence - I have a number of questions⦠and i guess some will feel funny to the more expert peeps amogst you.
-Items file: You have included["tags"]
for each item, but they arenāt in the format used for alexa or google home integration. Are these tags there just as example or do they get used by some of the code iām failing to locate (at the very least they arenāt mentioned in the rules)
-themes and colors some clever people like @guiott already had the knowledge needed to adapt the colors and themes, but I⦠well Iāve learned the little i know trying to use rules dsl for OH to do what i want it to do (so far with good success), while here we enter a space iām not familiar with.
Iāve applied the Matrix Theme for HABPanel to my habpanel but your scheduler doesnāt fall in line with the rest.
Could you jot down a quick guide in regards to how to modify colors?
OR/AND Could you point me towards what resources to study in order to gain the knowledge needed to make those changes, so that maybe contribute in some wayā¦
-VS ide with OH extension installed points to quite a high number of problems in the rules i copypasted from your github project, but then OH is able to refresh them and they work just fine.
So far iāve made a point of not having one problem in my rulesā¦
Iām guessing that is because you are using syntax coming from Java and not strictly xtend - is that it? or is the language service just not advanced enough for such advanced code and instead meant for beginners like myself?
Lastly, i wish this project would become a staple of OH, i feel it certainly deserves attention.
thanks again!
I have installed the software as instructed in the original post/GitHub site. Installing the files into the html, items, and rules directories.
I also installed JSONPath Transformation (using PaperUI interface).
Contents of items/OHScheduler.items
:
// These are unchanged from original file
Group grpTemp
Group grpTargetTemp
String HVAC_Mode "HVAC Mode [%s]" <switch> ["HVACMode"]
String HVAC_Schedule "HVAC Schedule [%s]" <calendar> ["HVACSchedule"]
String HVAC_Queue "HVAC Queue [%s]" ["HVACQueue"]
DateTime HVAC_Next_Change_Time "HVAC Next Change Time [%1$ta %1$tR]" <calendar> ["HVACNextChange"]
// These items I added, because the lines are so long, I removed most of the channel details
Number HVAC_SetpointHeating_Temp "Setpoint Heating Temp [%.0f °F]" <temperature> (grpTemp) ["SPHeatTemp"] {channel="zwave:device:..."}
Number HVAC_SetpointHeating_Target_Temp "Setpoint Heating Target Temp [%.0f °F]" <temperature> (grpTemp,grpTargetTemp) ["SPHeatTargetTemp"] {channel="zwave:device:..."}
Number HVAC_SetpointCooling_Temp "Setpoint Cooling Temp [%.0f °F]" <temperature> (grpTemp) ["SPCoolTemp"] {channel="zwave:device:..."}
Number HVAC_SetpointCooling_Target_Temp "Setpoint Cooling Target Temp [%.0f °F]" <temperature> (grpTemp,grpTargetTemp) ["SPCoolTargetTemp"] {channel="zwave:device:..."}
Then I installed the widget on a HABPanel dashboard.
What works:
What does not work:
My only clue is in the event logs, which says the following.
Manually changing the temperature (works).
[ome.event.ItemCommandEvent] - Item 'HVAC_SetpointHeating_Target_Temp' received command 77
[nt.ItemStatePredictedEvent] - HVAC_SetpointHeating_Target_Temp predicted to become 77
[vent.ItemStateChangedEvent] - HVAC_SetpointHeating_Target_Temp changed from 67 to 77
Setting a schedule to change the temperature. First three lines are setting the temperature at a time X. Then time X is reached, Iāve added a comment. And the temperature is suppose to change. If it matters, the Mode is set to āHeatā.
[ome.event.ItemCommandEvent] - Item 'HVAC_Schedule' received command {"HVAC_SetpointHeating_Target_Temp":{"D5":{"T0955":70}}}
[vent.ItemStateChangedEvent] - HVAC_Schedule changed from NULL to {"HVAC_SetpointHeating_Target_Temp":{"D5":{"T0955":70}}}
[vent.ItemStateChangedEvent] - HVAC_Next_Change_Time changed from NULL to 2019-07-05T09:55:00.000-0500
// --Time X occurs here--
[vent.ItemStateChangedEvent] - HVAC_Queue changed from NULL to HVAC_SetpointHeating_Target_Temp=70
[vent.ItemStateChangedEvent] - HVAC_SetpointHeating_Target_Temp changed from 77 to 70
[vent.ItemStateChangedEvent] - HVAC_Queue changed from HVAC_SetpointHeating_Target_Temp=70 to
[vent.ItemStateChangedEvent] - HVAC_Queue changed from to HVAC_SetpointHeating_Target_Temp=70
[vent.ItemStateChangedEvent] - HVAC_Queue changed from HVAC_SetpointHeating_Target_Temp=70 to
[vent.ItemStateChangedEvent] - HVAC_Queue changed from to HVAC_SetpointHeating_Target_Temp=70
[vent.ItemStateChangedEvent] - HVAC_Queue changed from HVAC_SetpointHeating_Target_Temp=70 to
What I notice is that the HVAC_Queue is not correctly being set. I feel there should be something after the ātoā.
Can someone help point out what is happening? And why the scheduler does not change the target temperature correctly?
Is there is a way to debug the rules file (by dumping more output to the logs)?
Edit: version of Openhab2 is 2.4.0
Solved - The problem was in the rules. The code that Geo @nepotu generously shared with us uses postUpdate()
to change the temperature. I hacked the rules to use sendCommand()
. I suspect this is a function of my Z-wave thermostat and how to control it. Additionally, I only have two items now: a heating and cooling setpoint. I no longer have both a ātemperatureā and a ātarget temperatureā.
Hi All
Ive configured as per the instructions but get nothing in my widget. CSS is set right, JSON path there. Rules/items are set, curly braces removed and values set to the items but nothing
Any thoughts as to why this is so?
Console shows this:
Source map error: request failed with status 404
Resource URL: http://192.168.0.87:8080/static/habpanel/scheduler/vis.min.js?v=4.21.0&_dc=1567586507470
Source Map URL: vis.map
Hello Ender, I have same problem with my devices. Are different (from Eq-3 Max), but I think the cause is identical and they needs a sendCommand() instead a postUpdate()
Iām not able with coding, so I donāt understand where and how change it.
Can you please share with us the hack you do it to the rules file?
Thank you Ender
PS: thanks also to Geo for this project!
Stefan, In the end I wound up not using this project as I could not get a stable outcome for my HVAC system. But here is the change I made
File: rules/OHSchedulerHVAC.rules, line 207
- targetItem.postUpdate(DecimalType.valueOf(itemsTempArray.get(j.intValue()).split('=').get(1)))
+ targetItem.sendCommand(DecimalType.valueOf(itemsTempArray.get(j.intValue()).split('=').get(1)))
Or if you want a patch file: changetosendCommand_patch.txt (968 Bytes)
Apply the patch with:
# change directory to where your rules directory is located, e.g. /etc/openhab2/
patch --verbose -p 1 < changetosendCommand_patch.txt
Thank You Ender.
Hi @bulletprooffool did you fix the IPhone delete bug?
Hi. I gave up on this in the end.
Simplified my HVAC schedulng to just 5 time frames:
AWAY
HOLIDAY
HOME 7am - 7pm
HOME 7pm - 10pm
HOME 10pm to 7am
My schedules had been pretty much the same as this and I didnāt need more granular scheduling.
Fair enough, but how did you fix the delete bug?
Iām going to try and get someone to fix it if I cant This is an awesome piece of work, it would be a shame to not get it fully functioning for everyone. Ill share what i find