Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

History Graphs are not shown since Eve app update #76

Closed
sschuste opened this issue Aug 29, 2019 · 27 comments
Closed

History Graphs are not shown since Eve app update #76

sschuste opened this issue Aug 29, 2019 · 27 comments

Comments

@sschuste
Copy link

My Eve app has been updated to v3.8.1 and no longer displays history graphs. Is this a problem to be solved by the EVE developers or by you?

@DJay-X
Copy link

DJay-X commented Aug 29, 2019

@simont77 Same problem here after updating to Eve App v3.8.1
Any help is much appreciated. 👍

@kotashiratsuka
Copy link

same problem

@ebaauw
Copy link
Contributor

ebaauw commented Aug 29, 2019

A far as I can tell, the history protocol itself hasn’t changed, but the Eve app is way more restrictive on what the accessory should look like, before it shows history:

  • Sensor with only temperature no longer shows history, but combined temperature, humidity, pressure sensor still works;
  • Thermostat without schedule no longer shows history, but thermostat with schedule still works. Seems like the history for valve position is no longer shown at all;
  • Custom service with Total Consumption no longer shows history, but Outlet does.
  • Motion and Door sensors still work.

To answer your question: neither, by the plugin developers.

@simont77
Copy link
Owner

I’m away from my PC and with limited internet connection, so I cannot do any test. The update to Eve is a minor release and no firmware update are indicated in the change log, so I would suggest you to try to delete the history from Eve, and, if it doesn’t work, to completely reinstall Eve.

@simont77
Copy link
Owner

Seems ebaauw has already investigated much more...

@simont77
Copy link
Owner

simont77 commented Aug 29, 2019

Maybe Eve is more strict on the “fingerprint” as discovered by @stefdude? @ebaauw, what about your combined temperature and plug accessory? Right now fakegato weather probably REQUIRES pressure and humidity, and power REQUIRES outlet

@ebaauw
Copy link
Contributor

ebaauw commented Aug 29, 2019

Oddly, the temperature / on/off hack still works. My current hypothesis is that the Eve app wants to see the correct service and characteristic(s) for each data type in the history fingerprint. I plan to do some more rigorous testing this weekend.

@Samfox2
Copy link
Contributor

Samfox2 commented Aug 29, 2019

Combined sensor with temp/humidity/air quality also still working...

@sieren
Copy link
Contributor

sieren commented Aug 29, 2019

I took a quick look at this yesterday (incl. the repos that are using fakegato that are still working).
Everything points towards Eve being more restrictive. However, since all of this is publicly accessible, nothing would stop someone from re-implementing this in a separate app.

It's a shame though Eve is so restrictive about this :/ After all it's just the maker community that's using this and it wouldn't necessarily dig into their overall sales.

@simont77
Copy link
Owner

simont77 commented Aug 29, 2019

@ebaauw if you are right it should be possible to fix custom services with consumption only by changing the signature and data portion in fakegato to advertise and send only consumption (should be 0702 section of the current signature). For Energy I did not have a full dump, and it was really an hack over the Room protocol, so it may well be not properly formatted as @stefdude discovered.

@simont77
Copy link
Owner

If that works, it should be possible to add a Temp-only fakegato type advertising and sending only temperature (0102 signature). Any help is appreciated as I’m away from PC for one more week, but I can accept PR. I will make a new branch fix-signature for that.

@Samfox2
Copy link
Contributor

Samfox2 commented Aug 29, 2019

Would temp+humidity-only also be possible?

@dpecile
Copy link

dpecile commented Aug 31, 2019

You can use EVE for IOS 10, until someone can find a fix.
(and disable automatic application updates).

@ebaauw
Copy link
Contributor

ebaauw commented Sep 1, 2019

If that works, it should be possible to add a Temp-only fakegato type advertising and sending only temperature (0102 signature).

No, that doesn't work.

I did find a hack to expose only temperature history, using the regular weather history, see #75.

Would temp+humidity-only also be possible?

Yes, using the same hack.

@simont77
Copy link
Owner

simont77 commented Sep 1, 2019

Did you make some test also for the consumption-only service?

@ebaauw
Copy link
Contributor

ebaauw commented Sep 1, 2019

Did you make some test also for the consumption-only service?

No, not yet.

@stef
Copy link

stef commented Sep 1, 2019

@simont77 when you write @stef then you uselessly invoke me, not the person you wanted to tag.

@simont77
Copy link
Owner

simont77 commented Sep 7, 2019

@ebaauw, I made some test.
For power consumption the signature scheme suggested by @stefdude decoding works:

  • accessoryType116 = "01 0702";
  • accessoryType117 = "01";
  • data reduced to 12 bytes, skipping all the 0x00 fields now sent by fakegato.

In this way only power is sent and expected. However Eve still needs the Outlet service to show the history. The good news is that Outlet service can be added to the accessory together with a custom Consumption service (i.e. it is not necessary to add Custom Eve characteristics to standard Outlet service), so for pure PowerMeter accessory the Outlet could be hidden in Eve, and the powermeter accessory remains visible.

@simont77
Copy link
Owner

simont77 commented Sep 7, 2019

Summarizing, some adjustment are required in the plugins using fakegato:

  • Weather type needs to conform to one of the options outlined by ebaauw, see Eve Signatures / Log Entries #75
  • Power type needs to expose also an Outlet service
  • Motion and Door types should still work
  • Thermostat type needs to expose the Schedule characteristics

@Samfox2
Copy link
Contributor

Samfox2 commented Sep 7, 2019

Sorry, I am really struggling with the adjustments for a combined temp/humi sensor.
This is what I did before but I like to remove the air pressure:

    Service.FakeGatoHistoryService = require('fakegato-history')(homebridge);
    inherits(Service.FakeGatoHistoryService, Service);
    Service.FakeGatoHistoryService.UUID = 'E863F007-079E-48FF-8F27-9C2605A29F52';`
... 
loggingService = new Service.FakeGatoHistoryService(accessory.context.logType, accessory, { storage: 'fs', path: this.localCache, disableTimer: false });
...
... 
case "weather:"
                this.log.debug("Temp: %s Press: %s Humi: %s",
                    accessory.context.cacheCurrentTemperature,
                    accessory.context.cacheCurrentAirPressure,
                    accessory.context.cacheCurrentRelativeHumidity);
                accessory.context.loggingService.addEntry({
                    time: moment().unix(),
                    temp: parseFloat(accessory.context.cacheCurrentTemperature),
                    pressure: parseFloat(accessory.context.cacheCurrentAirPressure),
                    humidity: parseFloat(accessory.context.cacheCurrentRelativeHumidity)
                });
                break;
...

Where do I have to change the signature?
Would it be possible to provide an example snipplet?

@simont77
Copy link
Owner

simont77 commented Sep 7, 2019

I’m copying from ebaauw message:

So the recipe for a temperature sensor is:

Expose a Weather service with only a Current Temperature characteristic;
Expose a regular Temperature Sensor service;
Expose a regular weather History service (with fingerprint 03 0102 0202 0302).

And for a temperature/humidity sensor:

Expose a Weather service with only a Current Temperature characteristic;
Expose a regular Temperature Sensor service;
Expose a regular Humidity Sensor service;
Expose a regular weather History service (with fingerprint 03 0102 0202 0302).

You don’t need to change any signature

@simont77
Copy link
Owner

simont77 commented Sep 7, 2019

You could also try to expose a Weather service with Current Temperature AND Humidity Characteristics (i.e. no pressure), and a regular Weather History service.

@ebaauw
Copy link
Contributor

ebaauw commented Sep 7, 2019

That’ll show as unsupported in Apple’s Home app.

@Samfox2
Copy link
Contributor

Samfox2 commented Sep 7, 2019

Maybe creating a hidden pressure service is also working.

@DoTTi72
Copy link

DoTTi72 commented Sep 17, 2019

With App version 3.8.3, the history graph is back!

@ebaauw
Copy link
Contributor

ebaauw commented Sep 17, 2019

Indeed. Eve once again shows history for an accessory and single Temperature Sensor service, as well as an accessory with Temperature Sensor and Humidity Sensor_ service. The hack with the Weather service seems no longer needed.

@sschuste
Copy link
Author

Okay, I guess we all had our fun and the party's over now, right? However, this is a good moment to thank everyone for your effort and most of all @simont77 for his nice piece of software 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants