MTry / homebridge-smart-irrigation

Turn any electrical irrigation valve into a smart-valve.. or run your pumps on a smart schedule based on your climate! This homebridge plugin exposes a multi-zone irrigation sprinkler dummy control system to Apple's HomeKit. Although a dummy, it brings smarts of an evapotranspiration based climate and plant adaptive irrigation controller with the use of OpenWeatherMap API. The plugin can optionally email you, and/or send you push notifications through Pushover or Pushcut, with the watering schedule it has calculated, or when a watering run is completed, along with the next 7-day weather forecast. Added option to expose system controls to Homekit allowing a user to enable/disable irrigation, rechecks, push and email notifications from within the Home App. Associated WaterLevel Characteristic shows the % of watering cycle remaining.
MIT License
77 stars 3 forks source link

[BUG] Not pulling sunrise data from API call, retrying every minute #56

Open jlg89 opened 1 year ago

jlg89 commented 1 year ago

Describe the bug

The plugin is throwing a warning message to the log, seemingly whenever it hits the OpenWeatherMap API:

WARNING Error getting weather data or Cannot read properties of undefined (reading 'sunrise')

After the error, the plugin waits a minute and then retries, with the same result. So it's hitting the API every minute, which is probably going to cause it to exceed the OpenWeatherMap usage limits.

To Reproduce

Steps or config to reproduce the behaviour:

{
    "accessories": [
        {
            "accessory": "SmartSprinklers",
            "name": "Irrigation",
            "exposeControls": true,
            "recheckTime": "15",
            "latitude": ***,
            "longitude": ***,
            "altitude": 115,
            "keyAPI": "***",
            "cycles": 2,
            "sunriseOffset": 90,
            "lowThreshold": 5,
            "highThreshold": 10,
            "senderName": "***",
            "smtpPort": 587,
            "priorityPO": 0,
            "soundPO": "pushover",
            "pcWeatherCheckedSound": "system",
            "pcWateringStartSound": "system",
            "pcWateringEndSound": "jobDone",
            "JanRad": 3.06,
            "FebRad": 3.89,
            "MarRad": 4.82,
            "AprRad": 5.4,
            "MayRad": 5.91,
            "JunRad": 6.61,
            "JulRad": 6.77,
            "AugRad": 6.28,
            "SepRad": 5.24,
            "OctRad": 4.51,
            "NovRad": 3.34,
            "DecRad": 2.73,
            "zones": [
                {
                    "zoneName": "North",
                    "defDuration": 5,
                    "maxDuration": 20,
                    "rainThreshold": 6,
                    "tweakFactor": 100,
                    "dripLPH": 800,
                    "dripNos": 4,
                    "dripArea": 150,
                    "efficiency": 85,
                    "cropCoef": 0.5,
                    "plantDensity": 1,
                    "expFactor": 0.6,
                    "wateringMonths": [
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "May",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Oct",
                        "Nov",
                        "Dec"
                    ],
                    "wateringWeekdays": [
                        "Monday"
                    ],
                    "enabled": true,
                    "adaptive": true,
                    "rainFactoring": true
                },
                {
                    "zoneName": "West",
                    "defDuration": 5,
                    "maxDuration": 20,
                    "rainThreshold": 6,
                    "tweakFactor": 100,
                    "dripLPH": 800,
                    "dripNos": 4,
                    "dripArea": 90,
                    "efficiency": 85,
                    "cropCoef": 0.5,
                    "plantDensity": 1,
                    "expFactor": 0.5,
                    "wateringMonths": [
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "May",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Oct",
                        "Nov",
                        "Dec"
                    ],
                    "wateringWeekdays": [
                        "Tuesday"
                    ],
                    "enabled": true,
                    "adaptive": true,
                    "rainFactoring": true
                },
                {
                    "zoneName": "South",
                    "defDuration": 5,
                    "maxDuration": 20,
                    "rainThreshold": 6,
                    "tweakFactor": 100,
                    "dripLPH": 800,
                    "dripNos": 4,
                    "dripArea": 145,
                    "efficiency": 85,
                    "cropCoef": 0.5,
                    "plantDensity": 1,
                    "expFactor": 1,
                    "wateringMonths": [
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "May",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Oct",
                        "Nov",
                        "Dec"
                    ],
                    "wateringWeekdays": [
                        "Monday"
                    ],
                    "enabled": true,
                    "adaptive": true,
                    "rainFactoring": true
                },
                {
                    "zoneName": "East",
                    "defDuration": 5,
                    "maxDuration": 20,
                    "rainThreshold": 6,
                    "tweakFactor": 100,
                    "dripLPH": 800,
                    "dripNos": 4,
                    "dripArea": 80,
                    "efficiency": 85,
                    "cropCoef": 0.5,
                    "plantDensity": 1,
                    "expFactor": 0.9,
                    "wateringMonths": [
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "May",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Oct",
                        "Nov",
                        "Dec"
                    ],
                    "wateringWeekdays": [
                        "Tuesday"
                    ],
                    "enabled": true,
                    "adaptive": true,
                    "rainFactoring": true
                }
            ],
            "senderEmail": "***",
            "sendTo": "***",
            "smtpHost": "***",
            "portSecure": false,
            "userPwd": "***",
            "userID": "***",
            "emailEnable": true,
            "plugin_map": {
                "plugin_name": "homebridge-smart-irrigation"
            }
        }
    ]
}

Expected behavior

The plugin shouldn't be throwing this warning, or it should at least wait longer than a minute to hit the API again. I'm assuming that, if it can't determine when "sunrise" is, then the "sunriseOffset" feature probably won't work, and if it hits the API too often, the OpenWeatherMap server will cut off access.

Screenshots or logs

This is repeating every minute:

5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationlight rain on Sunday 5/7/2023 with 100% clouds & 76% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:4.96mm|Rain:1.4mm|Min:20.07°C|Max:28.05°C|Wind:8.89m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationlight rain on Monday 5/8/2023 with 94% clouds & 81% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:4.40mm|Rain:1.55mm|Min:19.59°C|Max:28.97°C|Wind:5.64m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationmoderate rain on Tuesday 5/9/2023 with 97% clouds & 71% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:5.04mm|Rain:7.95mm|Min:19.14°C|Max:27.65°C|Wind:6.21m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationmoderate rain on Wednesday 5/10/2023 with 87% clouds & 86% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:3.50mm|Rain:14.75mm|Min:18.18°C|Max:23.08°C|Wind:7.8m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationmoderate rain on Thursday 5/11/2023 with 100% clouds & 79% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:4.28mm|Rain:7.68mm|Min:18.48°C|Max:25.74°C|Wind:7.05m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationlight rain on Friday 5/12/2023 with 88% clouds & 72% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:4.72mm|Rain:4.3mm|Min:18.02°C|Max:28.35°C|Wind:4.34m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationlight rain on Saturday 5/13/2023 with 100% clouds & 72% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:5.07mm|Rain:2.87mm|Min:20.65°C|Max:28.48°C|Wind:5.68m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigation-----------------------------------------------------
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationlight rain on Sunday 5/14/2023 with 100% clouds & 66% RH
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationETo:5.38mm|Rain:2.74mm|Min:20.47°C|Max:27.7°C|Wind:5.54m/s
5/7/2023, 8:04:52 AMIrrigation BridgeIrrigationWARNINGError getting weather data or Cannot read properties of undefined (reading 'sunrise')

Platform (please complete the following information):

jlg89 commented 1 year ago

Yep, got an email from OpenWeather saying, "We have noticed that your account is currently using One Call API quite intensively and exceed the account limit of 1000 calls per day."

zilo85 commented 1 year ago

@jlg89 Did you manage to find a solution to the issue? I have had the same problem for a few days.

jlg89 commented 1 year ago

Unfortunately, no. I ended up dropping the cash for a Rachio with a Tempest weather station.