homebridge-windy-camera 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/config.schema.json +55 -5
- package/index.js +48 -2
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -43,18 +43,21 @@ Add a platform block to your Homebridge `config.json`:
|
|
|
43
43
|
{
|
|
44
44
|
"platform": "WindyCamera",
|
|
45
45
|
"name": "מכ״ם גשם",
|
|
46
|
-
"
|
|
47
|
-
"lon": 34.9351,
|
|
46
|
+
"city": "כפר יונה",
|
|
48
47
|
"width": 1300,
|
|
49
48
|
"height": 900,
|
|
50
49
|
"captureIntervalMs": 120000
|
|
51
50
|
}
|
|
52
51
|
```
|
|
53
52
|
|
|
53
|
+
בחר עיר מתוך רשימה נפתחת ב-Homebridge Config UI — הקואורדינטות שלה ימולאו אוטומטית.
|
|
54
|
+
אם העיר שלך לא ברשימה, בחר באפשרות "מותאם אישית (הזן קווים ידנית)" ומלא ידנית `lat`/`lon`.
|
|
55
|
+
|
|
54
56
|
| Option | Default | Description |
|
|
55
|
-
|
|
57
|
+
|---------------------|-----------------------|------------------------------------------------------------|
|
|
56
58
|
| `name` | `מכ״ם גשם` | Camera name shown in HomeKit / used to match the entry. |
|
|
57
|
-
| `
|
|
59
|
+
| `city` | `כפר יונה` | City picked from a dropdown list. Sets `lat`/`lon` automatically. |
|
|
60
|
+
| `lat` / `lon` | (from city) | Only used when `city` is set to "Custom". |
|
|
58
61
|
| `width` / `height` | 1300 / 900 | Screenshot resolution. |
|
|
59
62
|
| `captureIntervalMs` | 120000 (2 minutes) | How often to refresh the radar image. |
|
|
60
63
|
| `chromiumPath` | `/usr/bin/chromium` | Path to the system Chromium binary. |
|
package/config.schema.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"pluginAlias": "WindyCamera",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
-
"headerDisplay": "מצלמת מכ״ם גשם מבוססת Windy.com.
|
|
5
|
+
"headerDisplay": "מצלמת מכ״ם גשם מבוססת Windy.com. בחר עיר מהרשימה כדי למרכז את המפה סביבה, או בחר 'מותאם אישית' כדי להזין קווי רוחב/אורך משלך.",
|
|
6
6
|
"schema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
|
@@ -11,13 +11,63 @@
|
|
|
11
11
|
"type": "string",
|
|
12
12
|
"default": "מכ״ם גשם"
|
|
13
13
|
},
|
|
14
|
+
"city": {
|
|
15
|
+
"title": "עיר / אזור",
|
|
16
|
+
"type": "string",
|
|
17
|
+
"default": "כפר יונה",
|
|
18
|
+
"oneOf": [
|
|
19
|
+
{"title": "כפר יונה", "enum": ["כפר יונה"]},
|
|
20
|
+
{"title": "נתניה", "enum": ["נתניה"]},
|
|
21
|
+
{"title": "תל אביב - יפו", "enum": ["תל אביב - יפו"]},
|
|
22
|
+
{"title": "חיפה", "enum": ["חיפה"]},
|
|
23
|
+
{"title": "ירושלים", "enum": ["ירושלים"]},
|
|
24
|
+
{"title": "באר שבע", "enum": ["באר שבע"]},
|
|
25
|
+
{"title": "אשדוד", "enum": ["אשדוד"]},
|
|
26
|
+
{"title": "אשקלון", "enum": ["אשקלון"]},
|
|
27
|
+
{"title": "אילת", "enum": ["אילת"]},
|
|
28
|
+
{"title": "ראשון לציון", "enum": ["ראשון לציון"]},
|
|
29
|
+
{"title": "פתח תקווה", "enum": ["פתח תקווה"]},
|
|
30
|
+
{"title": "רחובות", "enum": ["רחובות"]},
|
|
31
|
+
{"title": "הרצליה", "enum": ["הרצליה"]},
|
|
32
|
+
{"title": "רעננה", "enum": ["רעננה"]},
|
|
33
|
+
{"title": "כפר סבא", "enum": ["כפר סבא"]},
|
|
34
|
+
{"title": "חדרה", "enum": ["חדרה"]},
|
|
35
|
+
{"title": "נהריה", "enum": ["נהריה"]},
|
|
36
|
+
{"title": "טבריה", "enum": ["טבריה"]},
|
|
37
|
+
{"title": "כרמיאל", "enum": ["כרמיאל"]},
|
|
38
|
+
{"title": "בית שאן", "enum": ["בית שאן"]},
|
|
39
|
+
{"title": "דימונה", "enum": ["דימונה"]},
|
|
40
|
+
{"title": "קרית שמונה", "enum": ["קרית שמונה"]},
|
|
41
|
+
{"title": "מודיעין", "enum": ["מודיעין"]},
|
|
42
|
+
{"title": "רמת גן", "enum": ["רמת גן"]},
|
|
43
|
+
{"title": "בת ים", "enum": ["בת ים"]},
|
|
44
|
+
{"title": "חולון", "enum": ["חולון"]},
|
|
45
|
+
{"title": "נצרת", "enum": ["נצרת"]},
|
|
46
|
+
{"title": "עפולה", "enum": ["עפולה"]},
|
|
47
|
+
{"title": "לוד", "enum": ["לוד"]},
|
|
48
|
+
{"title": "רמלה", "enum": ["רמלה"]},
|
|
49
|
+
{"title": "יבנה", "enum": ["יבנה"]},
|
|
50
|
+
{"title": "קרית גת", "enum": ["קרית גת"]},
|
|
51
|
+
{"title": "שדרות", "enum": ["שדרות"]},
|
|
52
|
+
{"title": "נתיבות", "enum": ["נתיבות"]},
|
|
53
|
+
{"title": "ערד", "enum": ["ערד"]},
|
|
54
|
+
{"title": "זכרון יעקב", "enum": ["זכרון יעקב"]},
|
|
55
|
+
{"title": "מותאם אישית (הזן קווים ידנית)", "enum": ["מותאם אישית (הזן קווים ידנית)"]}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
14
58
|
"lat": {
|
|
15
|
-
"title": "קו רוחב (Latitude)",
|
|
16
|
-
"type": "number"
|
|
59
|
+
"title": "קו רוחב (Latitude) - מותאם אישית",
|
|
60
|
+
"type": "number",
|
|
61
|
+
"condition": {
|
|
62
|
+
"functionBody": "return model.city === 'מותאם אישית (הזן קווים ידנית)';"
|
|
63
|
+
}
|
|
17
64
|
},
|
|
18
65
|
"lon": {
|
|
19
|
-
"title": "קו אורך (Longitude)",
|
|
20
|
-
"type": "number"
|
|
66
|
+
"title": "קו אורך (Longitude) - מותאם אישית",
|
|
67
|
+
"type": "number",
|
|
68
|
+
"condition": {
|
|
69
|
+
"functionBody": "return model.city === 'מותאם אישית (הזן קווים ידנית)';"
|
|
70
|
+
}
|
|
21
71
|
},
|
|
22
72
|
"width": {
|
|
23
73
|
"title": "רוחב התמונה (פיקסלים)",
|
package/index.js
CHANGED
|
@@ -14,6 +14,47 @@ const DEFAULT_HEIGHT = 900;
|
|
|
14
14
|
const DEFAULT_CAPTURE_INTERVAL_MS = 120000;
|
|
15
15
|
const DEFAULT_CHROMIUM_PATH = '/usr/bin/chromium';
|
|
16
16
|
|
|
17
|
+
const CUSTOM_CITY_LABEL = 'מותאם אישית (הזן קווים ידנית)';
|
|
18
|
+
|
|
19
|
+
const CITIES = {
|
|
20
|
+
'כפר יונה': { lat: 32.3167, lon: 34.9351 },
|
|
21
|
+
'נתניה': { lat: 32.3215, lon: 34.8532 },
|
|
22
|
+
'תל אביב - יפו': { lat: 32.0853, lon: 34.7818 },
|
|
23
|
+
'חיפה': { lat: 32.7940, lon: 34.9896 },
|
|
24
|
+
'ירושלים': { lat: 31.7683, lon: 35.2137 },
|
|
25
|
+
'באר שבע': { lat: 31.2518, lon: 34.7913 },
|
|
26
|
+
'אשדוד': { lat: 31.8044, lon: 34.6553 },
|
|
27
|
+
'אשקלון': { lat: 31.6688, lon: 34.5742 },
|
|
28
|
+
'אילת': { lat: 29.5581, lon: 34.9482 },
|
|
29
|
+
'ראשון לציון': { lat: 31.9730, lon: 34.7925 },
|
|
30
|
+
'פתח תקווה': { lat: 32.0917, lon: 34.8878 },
|
|
31
|
+
'רחובות': { lat: 31.8947, lon: 34.8095 },
|
|
32
|
+
'הרצליה': { lat: 32.1663, lon: 34.8434 },
|
|
33
|
+
'רעננה': { lat: 32.1848, lon: 34.8713 },
|
|
34
|
+
'כפר סבא': { lat: 32.1750, lon: 34.9070 },
|
|
35
|
+
'חדרה': { lat: 32.4340, lon: 34.9196 },
|
|
36
|
+
'נהריה': { lat: 33.0059, lon: 35.0919 },
|
|
37
|
+
'טבריה': { lat: 32.7922, lon: 35.5312 },
|
|
38
|
+
'כרמיאל': { lat: 32.9186, lon: 35.2951 },
|
|
39
|
+
'בית שאן': { lat: 32.4969, lon: 35.4967 },
|
|
40
|
+
'דימונה': { lat: 31.0687, lon: 35.0333 },
|
|
41
|
+
'קרית שמונה': { lat: 33.2075, lon: 35.5697 },
|
|
42
|
+
'מודיעין': { lat: 31.8928, lon: 35.0093 },
|
|
43
|
+
'רמת גן': { lat: 32.0684, lon: 34.8248 },
|
|
44
|
+
'בת ים': { lat: 32.0231, lon: 34.7503 },
|
|
45
|
+
'חולון': { lat: 32.0117, lon: 34.7736 },
|
|
46
|
+
'נצרת': { lat: 32.7018, lon: 35.2973 },
|
|
47
|
+
'עפולה': { lat: 32.6078, lon: 35.2897 },
|
|
48
|
+
'לוד': { lat: 31.9514, lon: 34.8916 },
|
|
49
|
+
'רמלה': { lat: 31.9276, lon: 34.8626 },
|
|
50
|
+
'יבנה': { lat: 31.8792, lon: 34.7398 },
|
|
51
|
+
'קרית גת': { lat: 31.6100, lon: 34.7642 },
|
|
52
|
+
'שדרות': { lat: 31.5257, lon: 34.5960 },
|
|
53
|
+
'נתיבות': { lat: 31.4222, lon: 34.5883 },
|
|
54
|
+
'ערד': { lat: 31.2588, lon: 35.2128 },
|
|
55
|
+
'זכרון יעקב': { lat: 32.5731, lon: 34.9503 }
|
|
56
|
+
};
|
|
57
|
+
|
|
17
58
|
module.exports = (api) => {
|
|
18
59
|
api.registerPlatform(PLATFORM_NAME, WindyCameraPlatform);
|
|
19
60
|
};
|
|
@@ -25,8 +66,13 @@ class WindyCameraPlatform {
|
|
|
25
66
|
this.api = api;
|
|
26
67
|
|
|
27
68
|
this.name = this.config.name || DEFAULT_NAME;
|
|
28
|
-
|
|
29
|
-
|
|
69
|
+
|
|
70
|
+
const cityCoords = this.config.city && this.config.city !== CUSTOM_CITY_LABEL
|
|
71
|
+
? CITIES[this.config.city]
|
|
72
|
+
: null;
|
|
73
|
+
|
|
74
|
+
this.lat = this.numberOr(this.config.lat, cityCoords ? cityCoords.lat : DEFAULT_LAT);
|
|
75
|
+
this.lon = this.numberOr(this.config.lon, cityCoords ? cityCoords.lon : DEFAULT_LON);
|
|
30
76
|
this.width = this.numberOr(this.config.width, DEFAULT_WIDTH);
|
|
31
77
|
this.height = this.numberOr(this.config.height, DEFAULT_HEIGHT);
|
|
32
78
|
this.captureIntervalMs = this.numberOr(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-windy-camera",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Captures a live Windy.com radar map screenshot and keeps it registered as a camera inside homebridge-camera-ui",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"homebridge": "^1.6.0 || ^2.0.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"homebridge-windy-camera": "^1.0.4",
|
|
24
25
|
"playwright-core": "^1.40.0"
|
|
25
26
|
}
|
|
26
|
-
}
|
|
27
|
+
}
|