Read the statement by Michael Teeuw here.
MMM-GooglePhotos
-
@Sean Okay. I think I’m understanding the behavior a little more. It ran yesterday for over 12 hours. When it failed, it happened on indexing, then a single image was loaded successfully. After that all images failed and the module never tried refreshing the token or indexing again.
I don’t know what the cause of the network socket disconnected error is, but is there any way for the module to recover?
If it recovered even in another 50 min when it should do another scan, I think that’s reasonable. The problem is that the error is fatal to the scanning process and all the URLs are bad after the 60 min lifespan. The module never restarts the scanning after the initial failure.
-
Dear @Sean
Here is a log from the latest commit.
It hasn’t been recovered yet. but it has good Internet access.
“Image loading fails…” logs keep accumulating.
Thanks.
[2020-05-06 21:23:04.194] [LOG] [GPHOTOS:CORE] Indexing photos now. [2020-05-06 21:23:07.145] [LOG] [GPHOTOS:CORE] Indexing photos now. [2020-05-06 21:23:09.834] [LOG] [GPHOTOS:CORE] Indexing photos now. [2020-05-06 21:23:15.916] [LOG] [GPHOTOS:CORE] Indexing photos now. [2020-05-06 21:23:18.606] [LOG] [GPHOTOS:CORE] Indexing photos now. [2020-05-06 21:23:20.520] [LOG] [GPHOTOS] Getting 218 photo(s) list from 'display' [2020-05-06 21:23:20.521] [LOG] [GPHOTOS] Total indexed photos: 218 [2020-05-06 21:23:21.424] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_ZAGkc2g_-LhINGiFXSqctac3jIms5eqooJW4_hLdNP4ehf_KR2peBRmgNVFUCDKVOT [2020-05-06 21:25:21.010] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_aRmsMj1l0vutiPh7HG5ZlkmEV-af6cPOPI_SES2O6PzX8gaGfLmJoMMPDw3xcZ3beo [2020-05-06 21:27:21.095] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_YKc6UhR4ZvdFPODYflw6cJYOaApkgyig85PP2UBuqyRIwVFreSLYerOS0L6eI9KlCB [2020-05-06 21:29:20.803] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_ZANdgPjWShaWBl8CgPt8LgN2EVYO6Muq4GwolO8eJh1i65kVxRQEpwYokdjwrxD5bW [2020-05-06 21:31:21.026] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_aC6voVTY4cjTOGEGner4cuOGtUC41vpPTElactvgQiPCRufJIt-CekLjGvna1lNf5q [2020-05-06 21:33:21.279] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_aSF39eNT_5LY4V7Q1pD-VWqsYU2d3oIOPtaTZEPIdDT20UQfKbcgmesm0ylq2pZDP6 [2020-05-06 21:35:22.344] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_bb6fTpmmBjYcDWx_jS8TbY_lj9SyxNX423SIWrRVPxlmMPeQwsWJTDdyuEqTdrJpFD [2020-05-06 21:37:21.065] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_ZJYlbhKK_ggA67q6TWDFVW1IKKHYyuwH36KyYZ9qKqTOmYL9hfVw5aX2QjumzmcIuA [2020-05-06 21:39:21.220] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_bOkvNs0-l0NP0MC9dL3xjt152FCwXo9SOW1cSyrrSxaYCg-tPYqTs6SqJYPz1jvz_h [2020-05-06 21:41:21.288] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_brpTK4ce4oteU2Te43zXsgUNyobzmk8MkiqFF6jpPr23lh1WrAqwj8dLPKCzbmhNkW [2020-05-06 21:43:21.509] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_YXQKGn4L3DOuTxaqK_khpcrSZDvJggiDLMoQEn8YHfkDm4ZmY4HiDB2kKihBa9lYRp [2020-05-06 21:45:21.225] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_adPN03hNIlKDYJ8QQWct1QUEbYEcDTV9rrN-Bzb-ilGXQ7fBqjxZccWvT6XoGGedrf [2020-05-06 21:47:22.063] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_YiyTxwNVgIYEXnCNt8B3auhdEQ5H2KdEIf2qEcdoPCheIaV6mPde96o2YxmuqNfK5i [2020-05-06 21:49:21.664] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_Yaj48kiRsP2FFtguvyIApL5kPeFGkjzKbFtyP0p9LJSQZIzhuCTEhaTWEH6gD4peFG [2020-05-06 21:51:21.005] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_bG-4fdNDpDGNJI5P91gZBl3Wj9xa3MrxNeAmpgH6ZDstKl5_vPNMlNWEXsSI0Hw_qs [2020-05-06 21:53:21.391] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_bm09bFbINYYpaWRsLcUGMSRGHHuvngYwi-uQKqvWE5JEH12_kWbayq0sUoEGVoZTxX [2020-05-06 21:55:21.004] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_Yvu_S-5wIgSEAjPLs2ekIfRmZxlgWQAurf9RMFun9neeBkQ5KDRs9lvXovnNWrXGDL [2020-05-06 21:57:21.028] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_YJygMYRIxk4kP386m8TBzNrSzu0hOIK5a_PMWai9lsnp0PJkwc4qsbVfYZNA-T7oW5 [2020-05-06 21:59:21.091] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_b7Iuy-YjiS6zdyKfd6nXF-7IakajHHaSJ_dvH_qOyh4gdkX1hzI-X7Uk49IN9oHK8y [2020-05-06 22:01:20.645] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_aJHCYEO9T3xoxSU_eV3qF1NL8FUd545Lqf1OUZ [2020-05-06 22:03:20.645] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bEH7pOxzBdRdkA8X9eU4YdshzT-HoaCw9-0XKr [2020-05-06 22:05:20.645] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YzKj9MLh4hpOiVdujA8fJ26pop4TBfqQfOvemT [2020-05-06 22:07:20.642] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ak9_lafawfAhSbhANtZXBdVHKOejIoGQkaV6jg [2020-05-06 22:09:20.646] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_aQZeAz0lgmTYU5yQeFSTldb3scIuV3JHh5XlRM [2020-05-06 22:11:20.646] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ZAsV0o2wtiNNk3fKwxvPmMXfSWFfZ3qjgFoPv7 [2020-05-06 22:13:20.639] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bvB6ykWhOyPUcRLEAns7oT3Ki6feq2XwCwI6CV [2020-05-06 22:15:20.650] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_b_CM8oP6af_yfbt_z1avXwYtCb73Pv5nhZwWgP [2020-05-06 22:17:20.641] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YTziKyYe6pjVgxePdK1WmlFNvbuxsdBHQMxg0F [2020-05-06 22:18:20.551] [LOG] [GPHOTOS] Start Album scanning [2020-05-06 22:18:20.555] [LOG] [GPHOTOS:AUTH] Token is alive. [2020-05-06 22:18:20.557] [LOG] [GPHOTOS:CORE] Indexing photos now. [2020-05-06 22:18:20.573] [LOG] [GPHOTOS:CORE] Error: getaddrinfo EAI_AGAIN photoslibrary.googleapis.com [2020-05-06 22:19:20.652] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_b0lHI5Yb2yEo0cvz5PeedACuCUQVXlwh4emujT [2020-05-06 22:21:20.643] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YCEopH8TdGyRfIY8H8ZUTzsU0qS-X7CO3nmutB [2020-05-06 22:23:20.641] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ZS2xOl1MGDGVD8BSG2RuZ4sA9420QAQTXy-a67 [2020-05-06 22:25:20.641] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_boFHSaOpWwMDu8a4Mmk3Wt2uCxMLwx0gvzjkvz [2020-05-06 22:27:20.654] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bg60eryk44zXE1qAXmShms29YBS5CkOqhkWIJm [2020-05-06 22:29:20.653] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YiAaGQbuwZyzDl8KAPUWdsLaXKsCc6MEmuiEpf [2020-05-06 22:31:20.647] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_br8F5aUbIbDWDk4FTzmawCGeYS8JlH1fYuK8or [2020-05-06 22:33:20.647] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Zs_BgUJgTgurcCBrDgV8SMQP1Co-lVhT5McCSM [2020-05-06 22:35:20.657] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bA80MDC-Clsfa8Mkh-NgbAboCps1DHRPsupQxj [2020-05-06 22:37:20.648] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bV4Q0F-APfHaNq7pYU1DMHEkKk480oIDLcW9U_ [2020-05-06 22:39:20.657] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_a_15C3RmH37JYxvm32cwOHgKt_5eCR8PrA6N9T [2020-05-06 22:41:20.658] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Z83PeGemOxMHOvciv-a_8__crs-cqQ2XYw8vzk [2020-05-06 22:43:20.664] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Zxi4V3iJWKOf9F9cN1T29TDt-FFZIpo0FRqBW- [2020-05-06 22:45:20.653] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_atKOkiCTBnM_4IkZELUpjgYhSKrItSGQRSe2lT [2020-05-06 22:47:20.661] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YIqlfr5fXAdBlmAATjbo4G928V5A7lKMqs_0CI [2020-05-06 22:49:20.661] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bipyHtNScWr3gl4cQVoewCyIlyD-ZfQT_pRb8y [2020-05-06 22:51:20.662] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ZLyGsme1Z5GbQ6AU-AriXZHHd6hQvzI1iWxEiT [2020-05-06 22:53:20.665] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_a3Pgwf0uVyWcUqP8-qaWPh8xOL_mYGqpjEKhhA [2020-05-06 22:55:20.661] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ZoyynSCyzTQfmQ1jO2Ol2jJqYLgBvOMGJ07YcZ [2020-05-06 22:57:20.664] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_b8DtApJPwR13hJkJ6FfAbReueFS389qNjggGkU [2020-05-06 22:59:20.666] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Yr3nj_Y6RdmqUWA96FG3FI547-PZFLO5JrP5pI [2020-05-06 23:01:20.668] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_br-EpEIN8WzStxPcQt1c5h6NnpH8XE21YEApGp [2020-05-06 23:03:20.669] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_a08aZNB_XhCglG7WXcQ092a8eFzMzNUNaRZvqO [2020-05-06 23:05:20.658] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_aVURlKJiJR0fTzJWpcGTMlXvfiGk5nJ6etiSHi [2020-05-06 23:07:20.659] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_akPXXjHYRbPdSNItqwOLtXOcOSrc-HhJXyM3xb [2020-05-06 23:09:20.668] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Z05i2rhrYihDYrlFNXa5Whwx6GhoHWfNqH1bKg [2020-05-06 23:11:20.670] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bIkwJb-V0P5Gwy5K3bQ8EANAZKmKzOA0I_LxPs
-
@kykzzang said in MMM-GooglePhotos:
https://lh3.googleusercontent.com/lr/AFBm1_ZoyynSCyzTQfmQ1jO2Ol2jJqYLgBvOMGJ07YcZ
That’s because if you copy one of those links…those images do not exist.
-
sometimes, image loading is successful.
but after index failing, it does not run again.[2020-05-07 09:53:21.010] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ak9_lafawfAhSbhANtZXBdVH [2020-05-07 09:55:21.137] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ahNqW5H91XaNth2sJoX9QE7s [2020-05-07 09:57:21.130] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ZaAjKoODb_OPlUzISo9jy1u4 [2020-05-07 09:59:21.153] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bvB6ykWhOyPUcRLEAns7oT3K [2020-05-07 10:01:21.139] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Zs_BgUJgTgurcCBrDgV8SMQP [2020-05-07 10:03:21.237] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YmrDraY6gfuXVS7lDA6-op7K [2020-05-07 10:05:21.153] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YiUySpsiSfYCRte96P2xYIzZ [2020-05-07 10:07:20.918] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_aC6voVTY4cjTOGEGner4cuOGtUC41vpPTElactvgQiPCRufJIt-C [2020-05-07 10:09:21.142] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_ZWO0WENWR6IqtlvCWqWAZVSF [2020-05-07 10:11:21.023] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Zk6JM9zPQ72ll8EYULsuoCBM [2020-05-07 10:13:21.154] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_b_oSZict47mORzvT6uwd6tCm [2020-05-07 10:15:21.147] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bIkwJb-V0P5Gwy5K3bQ8EANA [2020-05-07 10:17:21.158] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_avm5xrDSN-xwthqb5zg9MxC8 [2020-05-07 10:19:21.160] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_YC1P-nHfYfVb5AEm6qJfpuvp [2020-05-07 10:21:21.159] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_buVXMwyR52HwdEOb_Vtz22OL [2020-05-07 10:23:21.154] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_aJ7QVByAhmj-5G29sTowiQH6 [2020-05-07 10:25:21.157] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_Z3Ucrm8Tf08CoidOImN531tQ [2020-05-07 10:27:21.206] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_b_CM8oP6af_yfbt_z1avXwYt [2020-05-07 10:29:20.983] [LOG] [GPHOTOS] Image loaded: https://lh3.googleusercontent.com/lr/AFBm1_YXQKGn4L3DOuTxaqK_khpcrSZDvJggiDLMoQEn8YHfkDm4ZmY4Hi [2020-05-07 10:31:21.147] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_bipyHtNScWr3gl4cQVoewCyI [2020-05-07 10:33:21.158] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_azVty06EiBsdLlD5CggnEQcb [2020-05-07 10:35:21.023] [LOG] [GPHOTOS] Image loading fails. Check your network.: https://lh3.googleusercontent.com/lr/AFBm1_a1uFaqkL2Oloi6jGCObhQKcp
-
@cowboysdude The URLs only last for an hour. That’s why it re-indexes and updates after 50 min. The issue @kykzzang and I are having is that sometimes during indexing there’s a network issue and the indexing doesn’t complete. When that happens the URLs don’t get updated and the module tries using the old URLs resulting in the the failed image loading.
-
He added logging and in there it should tell you why it’s failing…
-
@cowboysdude said in MMM-GooglePhotos:
He added logging and in there it should tell you why it’s failing…
Yes. This is the error and I appreciate all @Sean has done. However, whatever is causing the error below isn’t something I can identify/control/fix. There are no network issues anywhere else on my network except this single module. At least once a day I need to manually intervene to get it started again.
Error: Client network socket disconnected before secure TLS connection was established (/home/pi/MagicMirror/modules/MMM-GooglePhotos/GPhotos.js:124 GPhotos.log)
-
@gonzonia said in MMM-GooglePhotos:
@cowboysdude said in MMM-GooglePhotos:
He added logging and in there it should tell you why it’s failing…
Yes. This is the error and I appreciate all @Sean has done. However, whatever is causing the error below isn’t something I can identify/control/fix. There are no network issues anywhere else on my network except this single module. At least once a day I need to manually intervene to get it started again.
Error: Client network socket disconnected before secure TLS connection was established (/home/pi/MagicMirror/modules/MMM-GooglePhotos/GPhotos.js:124 GPhotos.log)
It’s disconnecting before the proper connection can be made… so it sounds like a Google issue.
-
Hello,
I’m a newbie on Magic Mirror, so please, be indulgent :)I’ve setup magic mirror as a server only on my NUC (via Docker) and I’ve installed npm module MMM-GooglePhotos on it.
I can access MM, and see all basic modules, browsing to the server and port configured in docker. So no problems there.I’m blocked though, on the installation (authorization part) of MMM-GooglePhotos module.
I’ve created all credentials on google, however, being a server only installation of magic mirror, I cannot complete the OAUTH token generation as advised in the docs, as via console there is no way to open a “browser” and access google consent screen.Is there any other way, maybe using a generic google API in the config, to authorize without going through consent screen?
Maybe doing the consent somewhere else (accessing an URL?) and then copy (and/or craft) the token somehow?Thank you for your time and help!
P.S.
Apologies if this is not the best place to post this message, so please advise if that’s the case. -
As I’ve said in another post, I couldn’t maintain this module anymore.
However, yesterday night, suddenly I got an idea of what happened. (Not tested, and… sorry, I couldn’t test)
Most of MM modules and MM itself are using the same port to communicate internally and externally. I suspect some modules(and even inside logics in a module) were racing to use the port. They had opened and closed the port by their own schedule, which could make this symptom. Connection with Google Server often needs some long time probably.
The solution might be to use a different port not to race. and make the connections not to happen asynchronously. For the performance, I usually used asynchronous attempting to communicate with Google Server, It might make worse that issue.
Well, some modification of source might be needed, but as I’ve said (again), I couldn’t.Anyway, this guess is not confirmed by the test, just an idea.
If someone could get an inspiration, I hope this guess could be a help.