Hello,
same here. I setup a firewall rule to block all traffic to the IP of the forecast.solar service (148.251.178.234) which worked. So technically not outgoing traffic possible.
$ curl -v -H 'Accept: text/csv' 'https://api.forecast.solar/estimate/watthours/day/52/12/37/0/8.0'
* Host api.forecast.solar:443 was resolved.
* IPv6: 2a01:4f8:211:55d::2
* IPv4: 148.251.178.234
* Trying 148.251.178.234:443...
* connect to 148.251.178.234 port 443 from 172.30.33.2 port 57176 failed: Connection refused
* Trying [2a01:4f8:211:55d::2]:443...
* Immediate connect fail for 2a01:4f8:211:55d::2: Address not available
* Failed to connect to api.forecast.solar port 443 after 3 ms: Couldn't connect to server
* Closing connection
curl: (7) Failed to connect to api.forecast.solar port 443 after 3 ms: Couldn't connect to server
$
I had this rule set for more than 12h. When removing the rule in the firewall I still get the rate limit error. Can someone explain this to me? The plugin is disabled and I only used this one curl request.
$ curl -v -H 'Accept: text/csv' 'https://api.forecast.solar/estimate/watthours/day/52/12/37/0/8.0'
* Host api.forecast.solar:443 was resolved.
* IPv6: 2a01:4f8:211:55d::2
* IPv4: 148.251.178.234
* Trying 148.251.178.234:443...
* Connected to api.forecast.solar (148.251.178.234) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 / X25519 / RSASSA-PSS
* ALPN: server accepted h2
* Server certificate:
* subject: CN=api.forecast.solar
* start date: Feb 26 02:44:19 2024 GMT
* expire date: May 26 02:44:18 2024 GMT
* subjectAltName: host "api.forecast.solar" matched cert's "api.forecast.solar"
* issuer: C=US; O=Let's Encrypt; CN=R3
* SSL certificate verify ok.
* Certificate level 0: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
* Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api.forecast.solar/estimate/watthours/day/52/12/37/0/8.0
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api.forecast.solar]
* [HTTP/2] [1] [:path: /estimate/watthours/day/52/12/37/0/8.0]
* [HTTP/2] [1] [user-agent: curl/8.5.0]
* [HTTP/2] [1] [accept: text/csv]
> GET /estimate/watthours/day/52/12/37/0/8.0 HTTP/2
> Host: api.forecast.solar
> User-Agent: curl/8.5.0
> Accept: text/csv
>
< HTTP/2 429
< server: nginx
< date: Sun, 03 Mar 2024 21:04:46 GMT
< content-type: text/csv; charset=utf-8
< x-version: v7.15.3
< x-build: 1856 (Sat, 02 Mar 2024 15:50:19 +0100)
< x-pid: KSVw6TY2
< x-ratelimit-zone: IP 94.xxx.xxx.xxx
< x-ratelimit-period: 3600
< x-ratelimit-limit: 12
< x-ratelimit-retry-at: 2024-03-02T09:22:25+01:00
< access-control-allow-origin: *
< access-control-allow-methods: OPTIONS,HEAD,GET,POST
< access-control-allow-headers: Origin,Content-Type,Authorization,X-Requested-With,X-Delimiter,X-Separator
<
"Rate limit for API calls reached."
* Connection #0 to host api.forecast.solar left intact
[core-ssh ~]$
Yes, I do have a 94er adress. MY ISP provides a public IPv6 and a non-public v4. Could this be part of the problem?
Gruss
Ralf