flatsiedatsie / domoticz-aurora-theme

A modern theme for Domoticz, the open source home automation platform.
GNU General Public License v3.0
35 stars 21 forks source link

No datavisualisation for certain weather sensors. #14

Closed xztraz closed 6 years ago

xztraz commented 6 years ago

Wind chill and temp/hum from composite weather sensor(accurite 5in1 via RfLink) don't show any graphs.

image

image

also rain and windspeed (from same sensor) don't seem to show any graph image

flatsiedatsie commented 6 years ago

As the manual states, not all items currently have dataviz. Feel free to add this though. Look at the dataviz.js code. At the top you will see all the commands. Try adding one for yours, and then share the code with us?

xztraz commented 6 years ago

I will! i saw that after i filed this. :)

xztraz commented 6 years ago

I can't find a specific item for rain sensor or my temp/hum-combined sensor in html. wind is there but i can't get it to visualize. tried "ws", "any" as data source but nothing.

temp/hum combined sensor image

Rain sensor(also from combined) image

Temp/hum sensor that works with dataviz (with item temp) image

or am i doing it completely wrong :)

xztraz commented 6 years ago

listed stuff through json api instead. i guess the item-types should be from there but with small caps?

flatsiedatsie commented 6 years ago

// listed stuff through json api instead. i guess the item-types should be from there but with small caps?

Spot on! I did it like this:

  1. Open the normal dataviz page for your sensor
  2. Look in the console to find the three JSON requests it usually makes (day, month year).
  3. Check out the day json response by opening that url in a new window. That will show you what data the normal dataviz uses. That will give a big hint as to which code it needs here too.
flatsiedatsie commented 6 years ago

I've added some code that will give items with the icecube icon an 'ice' class, and items with a rain icon a 'rain' class. That may help you target your sensors.

xztraz commented 6 years ago

sweet i'll have another try :)

xztraz commented 6 years ago

2 different temp sensors one with only temp/hum and one frome a weather station with multiple sensors. but temp/hum is one of them. if looking at json request for graph is the same but i can se in html output for the different sensors there is differences on the bstatus row

Working temp sensor (gives bg viz) /json.htm?type=graph&sensor=temp&idx=98&range=day html: image

weather station temp sensor (no bg viz) /json.htm?type=graph&sensor=temp&idx=108&range=day html: image

hasdataviz is added by aurora. but the temp item. is that what aurora uses to find what to put temp graphs on or is that added from aurora too?

flatsiedatsie commented 6 years ago

1. The aurora theme looks at the image that the element had, and uses that to give the element a CSS class. So a temperature icon -> "temp" class. Icecube icon -> "ice" class.

2. The URL you posted tells us something important: /json.htm?type=graph&sensor=temp&idx=98&range=day

Namely, that dDomoticz can show the dataviz in the same what that it does for temperature sensors.

So that has to go here: generateDataviz($(this),"temp", "ba");

3. Now for the last part of that call. Open this link in a new browser window: [your domoticz base url here]/json.htm?type=graph&sensor=temp&idx=98&range=day

So for example: 192.168.1.10:8080/json.htm?type=graph&sensor=temp&idx=98&range=day

There you will see the raw data that Domoticz usually sends to its dataviz function. There you will be able to find the last piece of the puzzle.

You will see something like "te" or "v" or "any" as the name for the data that is not the timestamp data. take that as the second part of the call.

So put that here: generateDataviz($(this),"temp", "here");

So now that I think about it, all that CSS classname stuff is not relevant :-D

xztraz commented 6 years ago

Ah that last piece was what i got stuck on. Since there is allready a temp post i tought that should be enough and started looking for other clues. I'll try tonight.

xztraz commented 6 years ago

Non viz sensor (idx108) image

viz sensor(98) image

both uses "te" wich is already in the js viz file. hmmm..?

xztraz commented 6 years ago

Ah! Think i fond whats wrong! Negtive values don't give you a viz!

xztraz commented 6 years ago

have another temp/hum sensor outside(same model that gives viz) but this one is in negative temp range and viola no viz! Creating new issue for negative values https://github.com/flatsiedatsie/domoticz-aurora-theme/issues/24

xztraz commented 6 years ago

Rain sensor

image

This should work then

            $(this).find('.item.rain:not(.bandmember):not(:has(.dataviz))').each(function () {
                $(this).addClass('hasdataviz');
                generateDataviz($(this),"rain", "mm");
            }); 

after cache cleanup a viz graph! image

awesome!

Just the issue with negative values to fix. i'll add as many sensors as i can

xztraz commented 6 years ago

having some trouble with a visibility sensor: in html image

tested this:

                $(this).find('.item.visibility:not(.bandmember):not(:has(.dataviz))').each(function () {
                    $(this).addClass('hasdataviz');
                    generateDataviz($(this),"counter", "v");
                });

json image

not sure if item.visibility is right? you say it looks at icon. should i look somwhere else?

json more info image

xztraz commented 6 years ago

added wind and rain atleast in pull request.

xztraz commented 6 years ago

more mockups values and imgtype taken from dummy sensors. i get no graph for dummy sensors so not sure this works.

                $(this).find('.item.air:not(.bandmember):not(:has(.dataviz))').each(function () {
                    $(this).addClass('hasdataviz');
                    generateDataviz($(this),"counter", "co2");
                }); 
                $(this).find('.item.speaker:not(.bandmember):not(:has(.dataviz))').each(function () {
                    $(this).addClass('hasdataviz');
                    generateDataviz($(this),"counter", "v");
                });
                $(this).find('.item.moisture:not(.bandmember):not(:has(.dataviz))').each(function () {
                    $(this).addClass('hasdataviz');
                    generateDataviz($(this),"counter", "v");
                });
        $(this).find('.item.leaf:not(.bandmember):not(:has(.dataviz))').each(function () {
                    $(this).addClass('hasdataviz');
                    generateDataviz($(this),"temp", "hu");
                });
xztraz commented 6 years ago

Could the ice icon mess with neg values viz?

flatsiedatsie commented 6 years ago

I've added air, speaker, moisture and leaf classes. (See line 1358 in custom.js)

xztraz commented 6 years ago

thanks. added some more in custom.js. gas and leaf moisture i can't get to work. leaf wetness don't seem to have a graph. gas i have no idea. should work. uncommentet those edit. leaf wetness have graph but not reachable by the leaf icon. maybe no correlation

xztraz commented 6 years ago

visibility, speaker, moist don't show month on viz. something missing for those

xztraz commented 6 years ago

ah different data values for month it seems. how do i solve this. "any" maybe? image

xztraz commented 6 years ago

no "any" does not work it takes every value. min,max,avg so you get a sawtooth pattern. hm. some other solution is needed

Kind of stuck on this. creating new issue for month display on averaging sensors Issue: https://github.com/flatsiedatsie/domoticz-aurora-theme/issues/27

xztraz commented 6 years ago

I think this should be the last sensors. so close after pull and verify

flatsiedatsie commented 6 years ago

Thank you so much for your great work, I really appreciate it!

flatsiedatsie commented 6 years ago

I see you added a call to make dataviz on items with a "Waterflow" class. But that class is not yet added to the html.

If two sensortypes types use the same image, but require different dataviz calls (percent vs counter, for example), then the theme cannot currently handle that. Adding the classes based on the image is a bit of a hack after all.

So I suspect in these cases we have to make a choice which of the two sensor types is the one that gets the dataviz.

Waterflow vs ....?

(Also, I try to keep classes all lowercase).

xztraz commented 6 years ago

Waterflow i found in the item class already for that item. used that to separate items seem to work. get graph on both items. i commented that ugly sollution at least :D

xztraz commented 6 years ago

water flow image image

soil moisture image image

xztraz commented 6 years ago

could use SoilMoisture instead of generated moisture to really separate them

xztraz commented 6 years ago

This seem to work so i think we can close this? month bug in other issue