404 Signature not found
[ Voor 8% gewijzigd door danda op 16-04-2023 02:13 ]
enige nadeel als bv een download hebt lopen, en je wilt een bundel aanvragen moet je wel even flink geduld hebben omdat ze de snelheid behoorlijk knijpen.. maar als je geen overig data verkeer hebt gaat dat best te doen...
404 Signature not found
...don't know what should be here...
mijn gedachten kronkel was nu.. sniff al het verkeer wat de app maakt.. die die roept immers ook gewoon de capi aan.. alleen doordat ik geen TLS verkeer via de sniffer(s) krijg.. kan ik niet eens de URLs zien welke aangeroepen worden
404 Signature not found
nu zijn we inmiddels Odido... zijn er nog naast de naam nog andere veranderingen te ontdekken in de capi / methodes van aanvullers scoren?
404 Signature not found
Nee helaas, odildo gebruikt dezelfde api als T-Mobile en dus ook het nieuwe login systeem om de tokens te verkrijgen. Waar ik nog geen tijd/zin gehad heb om te onderzoeken hoe ze de app van de response naar de capi token gaat. (er zit namelijk encryptie op maar in princiepe moet de token van die encryptie gewoon in de app verstopt zitten)SMSfreakie schreef op donderdag 7 september 2023 @ 21:04:
toch even een bumpje...
nu zijn we inmiddels Odido... zijn er nog naast de naam nog andere veranderingen te ontdekken in de capi / methodes van aanvullers scoren?
Wat wel mogelijk is een standaard android emulator gebruiken (android AVD) en daar kan je dan met HTTP toolkit de CAPI token loggen. Ik kan hier misschien als tijdelijke oplossing nog wel een tutorial voor maken of iets.
Een andere mogelijkheid is ook nog gewoon de website aavuller gebruiken, die heeft namelijk gewoon een simpele captcha die sommige python scripts gewoon kan oplossen. (of via zo'n service waar je dan 0.0003 cent betaald per captcha)
-- Na wat googlen ben ik toch even veder gaan kijken en het lijkt er op (kan dit niet met 100% zekerheid zeggen) dat ze fernet gebruiken om de tokens te encrypten/decrypten in de app.
--- Weer een kleine update
Heb nu toch nog even de ge-decompiled sourcecode erbij gepakt en het gebruikt inderdaad fernet >_<, wat ik nu kan doen is gewoon een alert toevoegen die de key laat zien aan mij zodat ik kan uitvogelen waar die vandaan komt.
[ Voor 42% gewijzigd door ThaGuus op 09-09-2023 15:28 ]
404 Signature not found
Let niet op de lelijke code het is namelijk een POC om te kijken of het nog allemaal werkt, maar het maakt gebruik van de nuget package: Cryptography.Fernet.
Eigenlijk is alles na "---- USE THIS IN ALL OTHER SCRIPTS BASSICLY! ----" is hetzelfde gebleven.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
| using Cryptography; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Text; using System.Web; namespace Odildo_POC; internal class Program { private static async Task Main(string[] args) { var httpClientHandler = new HttpClientHandler(); httpClientHandler.AllowAutoRedirect = false; // disable automatic redirection var httpClient = new HttpClient(httpClientHandler); string buying_code = "A0DAY01"; string fernet_encryption_key = "afIqRZm6iSev4zWysNGAjR6fCrOMf5GQqhKFfmXkgOU="; string oauth_clientkey = "9havvat6hm0b962i"; string base_domain = "odido.nl"; string encrypted_oauth_clientkey = Fernet.Encrypt(fernet_encryption_key, oauth_clientkey); string oauthToken = ""; if (File.Exists("oauthtoken.txt")) { oauthToken = File.ReadAllText("oauthtoken.txt"); if (!string.IsNullOrEmpty(oauthToken)) goto AUTHENTICATED; } string login_url = $"https://www.{base_domain}/login?returnSystem=app&nav=off&token={encrypted_oauth_clientkey}"; Console.WriteLine("Login at: {0}", login_url); Console.WriteLine("-----"); Console.WriteLine("After logging in and filling in the SMS code u will be redirected to a blank page copy the url"); Console.Write("New url: "); var url_or_token = Console.ReadLine(); var resultToken = ""; if (url_or_token.Contains(base_domain)) { resultToken = HttpUtility.ParseQueryString(new Uri(url_or_token).Query)["token"]; } else { resultToken = url_or_token; } Console.WriteLine("Recieved token: {0} ", resultToken); var fernetResult = Fernet.Decrypt(fernet_encryption_key, resultToken); var fernetResultJObject = JObject.Parse(fernetResult); var authorizationToken = Fernet.Decrypt(fernet_encryption_key, fernetResultJObject.Value<string>("AccessToken")); var resultCode = fernetResultJObject.Value<string>("ResultCode"); Console.WriteLine("Result data: {0}", fernetResult); Console.WriteLine("Got result: {0} with AccessToken: {1}", resultCode, resultCode); Console.WriteLine("Requesting oauth token.."); var request = new HttpRequestMessage(HttpMethod.Post, $"https://capi.odido.nl/createtoken"); var payload = new { AuthorizationCode = authorizationToken }; request.Content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/vnd.capi.tmobile.nl.createtoken.v1+json"); request.Headers.Add("accept", "application/json,application/vnd.capi.tmobile.nl.createtoken.v1+json"); request.Headers.Add("authorization", $"Basic OWhhdnZhdDZobTBiOTYyaTo="); // base64 of oauth clientkey + : Convert.ToBase64String(Encoding.UTF8.GetBytes($"{oauth_clientkey}:)); request.Headers.Add("grant_type", "authorization_code"); var response = await httpClient.SendAsync(request); if (!response.IsSuccessStatusCode) { Console.WriteLine("Request for token failed.."); Console.WriteLine($"Server error (HTTP {response.StatusCode}): {response.ReasonPhrase}"); return; } if (!response.Headers.TryGetValues("Accesstoken", out var headerValues)) { Console.WriteLine("AccessToken not in headers... so failed.."); return; } oauthToken = headerValues.FirstOrDefault(); File.WriteAllText("oauthtoken.txt", oauthToken); AUTHENTICATED: Console.WriteLine($"Capi authorization Header: Bearer {oauthToken}"); Console.WriteLine($"---- USE THIS IN ALL OTHER SCRIPTS BASSICLY! ----"); Console.WriteLine("Get Linked subscriptions:"); request = new HttpRequestMessage(HttpMethod.Get, $"https://capi.odido.nl/account/current?resourcelabel=LinkedSubscriptions&resourcelabel=CustomerBenefits"); request.Headers.Add("accept", "application/json,application/vnd.capi.tmobile.nl.account.v1+json"); request.Headers.Add("authorization", $"Bearer {oauthToken}"); response = await httpClient.SendAsync(request); var responseUrl = response.Headers.Location; // stupid temp way to get the authorization to stick request = new HttpRequestMessage(HttpMethod.Get, responseUrl); request.Headers.Add("accept", "application/json,application/vnd.capi.tmobile.nl.account.v1+json"); request.Headers.Add("authorization", $"Bearer {oauthToken}"); response = await httpClient.SendAsync(request); var responseData = await response.Content.ReadAsStringAsync(); var responseDataObject = JObject.Parse(responseData); var linkedSubscriptionsUrl = responseDataObject["Resources"] .FirstOrDefault(r => r["Label"].ToString() == "LinkedSubscriptions") ?["Url"] ?.ToString(); Console.WriteLine("LinkedSub url: {0}", linkedSubscriptionsUrl); request = new HttpRequestMessage(HttpMethod.Get, linkedSubscriptionsUrl); request.Headers.Add("accept", "application/vnd.capi.tmobile.nl.linkedsubscriptions.v1+json"); request.Headers.Add("authorization", $"Bearer {oauthToken}"); response = await httpClient.SendAsync(request); responseData = await response.Content.ReadAsStringAsync(); var jsonObject = JObject.Parse(responseData); var subscriptionURL = jsonObject["subscriptions"]?.FirstOrDefault()?["SubscriptionURL"]?.ToString(); Console.WriteLine("subscriptionURL url: {0}", subscriptionURL); while (true) { int delay = 5; await Task.Delay(TimeSpan.FromSeconds(delay)); Console.WriteLine("Checking..."); request = new HttpRequestMessage(HttpMethod.Get, subscriptionURL + "/databundles"); request.Headers.Add("accept", "application/vnd.capi.tmobile.nl.databundles.v1+json"); request.Headers.Add("authorization", $"Bearer {oauthToken}"); response = await httpClient.SendAsync(request); responseData = await response.Content.ReadAsStringAsync(); jsonObject = JObject.Parse(responseData); double totalRemainingNLData = jsonObject["Bundles"] .Where(b => b["Zones"].Values<string>().Contains("NL")) .Sum(b => b["Remaining"]["Value"].Value<double>()) / 1024.0; Console.WriteLine("Total Remaining Data: " + totalRemainingNLData); bool checkAvaiableBunddles = totalRemainingNLData < 700; delay = checkAvaiableBunddles ? 5 : 10; if (!checkAvaiableBunddles) continue; request = new HttpRequestMessage(HttpMethod.Get, subscriptionURL + "/availableroamingbundles"); request.Headers.Add("accept", "application/json,application/vnd.capi.tmobile.nl.roamingbundles.v4+json"); request.Headers.Add("authorization", $"Bearer {oauthToken}"); response = await httpClient.SendAsync(request); responseData = await response.Content.ReadAsStringAsync(); jsonObject = JObject.Parse(responseData); var avaibleBundles = jsonObject["Bundles"].Select(o => o["BuyingCode"].ToString()); Console.WriteLine("AvaibleBundles: {0}", string.Join(',', avaibleBundles)); if (avaibleBundles.Contains(buying_code)) { request = new HttpRequestMessage(HttpMethod.Post, subscriptionURL + "/roamingbundles"); request.Headers.Add("accept", "application/json,application/vnd.capi.tmobile.nl.roamingbundles.v4+json"); request.Headers.Add("authorization", $"Bearer {oauthToken}"); var buyPayload = new { Bundles = new[] { new { BuyingCode = buying_code } } }; var aa = JsonConvert.SerializeObject(buyPayload); request.Content = new StringContent(JsonConvert.SerializeObject(buyPayload), Encoding.UTF8, "application/vnd.capi.tmobile.nl.roamingbundles.v4+json"); response = await httpClient.SendAsync(request); responseData = await response.Content.ReadAsStringAsync(); } } } } |
Ik heb het automate script ook aangepast naar de odido api, heeft wel nu een authenticatie token nodig in plaats van username + wachtwoord.
Ik zou vanavond wel een repo maken met daarin een tool om deze token van t-mobile te pakken ( aka alles tot en met File.WriteAllText("oauthtoken.txt... ) in de bovenstaande code.
Oke om de OAuth key te krijgen kan je nu door dit tooltje krijgen:
https://github.com/GuusBa...enticator/releases/latest
[ Voor 16% gewijzigd door ThaGuus op 18-09-2023 22:24 ]
odido.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| import appdaemon.plugins.hass.hassapi as hass import requests import json from datetime import datetime class Odido(hass.Hass): def initialize(self): now = datetime.now() interval = int(self.args["interval"]) self.run_every(self.updateState, now, interval) self.updateState() def updateState(self, kwargs=None): #Create new header with Authorization headers = {"Authorization": "Bearer "+self.args["access_token"], "User-Agent": "ODIDO 8.0.0 (Android 12; 12)", "Accept" : "application/json"} response = requests.get("https://capi.odido.nl/account/current?resourcelabel=LinkedSubscriptions", headers=headers) dict = json.loads(response.content) #call the Resources Url response = requests.get(dict['Resources'][0]['Url'], headers=headers) dict = json.loads(response.content) subscriptionUrl = dict["subscriptions"][0]['SubscriptionURL'] response = requests.get(subscriptionUrl + "/roamingbundles", headers=headers) dict = json.loads(response.content) data = {"Bundles":[{"BuyingCode":"A0DAY01"}]} totalRemaining = 0 for bundle in dict['Bundles']: if (bundle['ZoneColor'] == 'NL') : remaining = bundle['Remaining'] totalRemaining += remaining['Value'] if (round(totalRemaining / 1024,0) < 1500) : self.interval = 600 if (round(totalRemaining / 1024,0) < 1000) : post_resp = requests.post(subscriptionUrl + "/roamingbundles", json=data, headers=headers) self.log(post_resp) self.log ("2000MB aangevuld") self.interval = int(self.args["interval"]) else : self.log ("There is " + str(round(totalRemaining / 1024,0)) + " MB remaining, no need to update") |
apps.yaml:
1
2
3
4
5
| odido: module: odido class: Odido interval: 3600 access_token: (token vanuit Odido.Authenticator) |
Netzoals bij het automate script moet je de accesstoken met mijn Odido.Authenticator tool aanvragen.
https://github.com/GuusBa...enticator/releases/latest
Het originele script:
https://gathering.tweakers.net/forum/view_message/69930184
alleen nou eens puzzelen waarom het automate script soms er uit "klapt" en hoe ik hem zo kan maken dat als die "fout" optreed het nog een keer probeert oid..
1
2
3
4
5
6
7
8
9
10
| 09-15 09:19:40.896 U 604@30: Received message without the keyword "verbruikt" 09-15 09:19:40.902 I 604@27: SMS received 09-15 09:21:10.797 I 604@28: Expression true? 09-15 09:21:10.799 U 604@29: Received message containing the keyword "verbruikt" 09-15 09:21:10.805 I 604@12: HTTP request 09-15 09:21:13.142 I 604@13: Variable set 09-15 09:21:13.144 U 604@14: Your linkedsubscription API url: https://capi.odido.nl/XXXXXXXXXX/linkedsubscriptions 09-15 09:21:13.146 I 604@31: HTTP request 09-15 09:21:28.630 F 604@31: java.net.SocketException: Socket closed 09-15 09:21:28.637 I 604@31: Stopped by failure |
[ Voor 61% gewijzigd door SMSfreakie op 15-09-2023 09:29 ]
404 Signature not found
Ik heb vanavond wel even tijd om het zelf te proberen, maar ik denk dat je na alle HTTP request blokjes een 'Catch Failure'-blok kunt toevoegen die het vervolgens opnieuw probeert. Iets wat he ook kunt proberen is het velt `timeout` in het HTTP request blokje hoger te zetten.SMSfreakie schreef op vrijdag 15 september 2023 @ 09:26:
werkt weer "goed" thnx @ThaGuus
alleen nou eens puzzelen waarom het automate script soms er uit "klapt" en hoe ik hem zo kan maken dat als die "fout" optreed het nog een keer probeert oid..
code:
1 2 3 4 5 6 7 8 9 10 09-15 09:19:40.896 U 604@30: Received message without the keyword "verbruikt" 09-15 09:19:40.902 I 604@27: SMS received 09-15 09:21:10.797 I 604@28: Expression true? 09-15 09:21:10.799 U 604@29: Received message containing the keyword "verbruikt" 09-15 09:21:10.805 I 604@12: HTTP request 09-15 09:21:13.142 I 604@13: Variable set 09-15 09:21:13.144 U 604@14: Your linkedsubscription API url: https://capi.odido.nl/XXXXXXXXXX/linkedsubscriptions 09-15 09:21:13.146 I 604@31: HTTP request 09-15 09:21:28.630 F 604@31: java.net.SocketException: Socket closed 09-15 09:21:28.637 I 604@31: Stopped by failure
10 sec timeouts in de requests lijkt niet echt te helpen...
[ Voor 26% gewijzigd door SMSfreakie op 15-09-2023 10:31 ]
404 Signature not found
Doe hem even vanuit een commando prompt.. Denk dat je ook nog iets van dotnet 7 nodig hebt.. Had ik ook namelijk..SijmenK schreef op zaterdag 16 september 2023 @ 13:51:
@ThaGuus ik krijg geen url bij de tool zelfs als admin zie ik even een popup en dan is die weer weg win10
Dan geeft die netjes de link naar de download bij Microsoft
[ Voor 8% gewijzigd door SMSfreakie op 16-09-2023 14:56 ]
404 Signature not found
Heb net even een aanpassing gedaan in v0.2 zodat .NET 7 als het goed is niet meer geïnstalleerd hoeft te worden. Dat was waarschijnlijk de fout waardoor het niet werkte. https://github.com/GuusBa...ticator/releases/tag/v0.2SijmenK schreef op zaterdag 16 september 2023 @ 13:51:
@ThaGuus ik krijg geen url bij de tool zelfs als admin zie ik even een popup en dan is die weer weg win10
Als het dan nog steeds niet werkt kan je ook zoals SMSFreakie al aangaf het draaien in opdrachtprompt (Command prompt) aka cmd.
De makkelijkste manier om dit te doen is opdrachtpompt te openen en dan de Odido.Authenticator.exe erin te slepen en dan op enter te drukken. Dan draait hij namelijk daarin en als er dan een foutmelding komt zie je die teminste in plaats van dat hij afsluit in 0.1 seconde.
Ik heb nu de flow aangepast en nu zou hij moeten blijven draaien en het opnieuw moeten proberen totdat het wel lukt. Hopelijk lost dit je probleem op:SMSfreakie schreef op vrijdag 15 september 2023 @ 09:26:
werkt weer "goed" thnx @ThaGuus
alleen nou eens puzzelen waarom het automate script soms er uit "klapt" en hoe ik hem zo kan maken dat als die "fout" optreed het nog een keer probeert oid..
code:
1 2 3 4 5 6 7 8 9 10 09-15 09:19:40.896 U 604@30: Received message without the keyword "verbruikt" 09-15 09:19:40.902 I 604@27: SMS received 09-15 09:21:10.797 I 604@28: Expression true? 09-15 09:21:10.799 U 604@29: Received message containing the keyword "verbruikt" 09-15 09:21:10.805 I 604@12: HTTP request 09-15 09:21:13.142 I 604@13: Variable set 09-15 09:21:13.144 U 604@14: Your linkedsubscription API url: https://capi.odido.nl/XXXXXXXXXX/linkedsubscriptions 09-15 09:21:13.146 I 604@31: HTTP request 09-15 09:21:28.630 F 604@31: java.net.SocketException: Socket closed 09-15 09:21:28.637 I 604@31: Stopped by failure
https://llamalab.com/automate/community/flows/46148
Ik gebruikte het voor een T-Mobile 4G voor thuis unlimited (was alleen 500GB gelimiteerd en dan met aanvullers) en deed het op Docker op een Synology.
Ik was aan het zoeken op er een equivalent van LlamaLab Automate is wat je op Docker kunt draaien, weet iemand dat ?
...don't know what should be here...
en uh was er niet al een script voor 4G voor thuis van eerder? welke dan wel een update zal moeten hebben ivm de veranderingen van de API ?
404 Signature not found
Als het om de docker image van lodu gaat heb ik hem al wel ge-update alleen nog niet op een docker registry gezet.Roel Broersma schreef op dinsdag 19 september 2023 @ 14:01:
Jullie draaien dus de Authenticator en vervolgens Automate (op Android) met deze Flow: https://llamalab.com/automate/community/flows/46148 ?
Ik gebruikte het voor een T-Mobile 4G voor thuis unlimited (was alleen 500GB gelimiteerd en dan met aanvullers) en deed het op Docker op een Synology.
Ik was aan het zoeken op er een equivalent van LlamaLab Automate is wat je op Docker kunt draaien, weet iemand dat ?
https://github.com/GuusBa...d-Bundle-Automated-docker
-- edit hij staat nu ook op de github docker registry --
https://github.com/GuusBa...d-bundle-automated-docker
[ Voor 11% gewijzigd door ThaGuus op 19-09-2023 18:17 ]
Thanks, zojuist uitgeprobeerd op de Synology. Eerst een nieuwe "docker pull ...." gedaan vanaf de SSH command line. Daarna heb ik in de Docker GUI (Synology) de 3 ENV variabelen gezet.ThaGuus schreef op dinsdag 19 september 2023 @ 18:08:
[...]
Als het om de docker image van lodu gaat heb ik hem al wel ge-update alleen nog niet op een docker registry gezet.
https://github.com/GuusBa...d-Bundle-Automated-docker
-- edit hij staat nu ook op de github docker registry --
https://github.com/GuusBa...d-bundle-automated-docker
De docker container geeft errors en lijkt niets te doen.
Toen heb ik de container verwijderd en opnieuw met "docker run --env-file .... .." vanaf de SSH command line gestart en natuurlijk in de file de 3 environment variables gezet. Ook nu stopt hij weer. Beide met dezelfde foutmelding dat de ENV variables leeg zijn.. ?
023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:21 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:21 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] online
20:13:21 PM2 | App [unlimited-sim:0] online
20:13:21 0|unlimited-sim | 2023-09-19T20:13:21: ENV variables not set
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:21 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:21 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] online
20:13:21 PM2 | App [unlimited-sim:0] online
20:13:21 0|unlimited-sim | 2023-09-19T20:13:21: ENV variables not set
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:21 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:21 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] online
20:13:21 PM2 | App [unlimited-sim:0] online
20:13:22 0|unlimited-sim | 2023-09-19T20:13:22: ENV variables not set
2023-09-19T20:13:22: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:22 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:22: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:22 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:22: PM2 log: App [unlimited-sim:0] online
20:13:22 PM2 | App [unlimited-sim:0] online
20:13:22 0|unlimited-sim | 2023-09-19T20:13:22: ENV variables not set
...don't know what should be here...
2 opties die ik kan bedenken die dit kan geven (want ik heb het getest en heb zelf de docker container ook draaien)Roel Broersma schreef op dinsdag 19 september 2023 @ 22:18:
[...]
Thanks, zojuist uitgeprobeerd op de Synology. Eerst een nieuwe "docker pull ...." gedaan vanaf de SSH command line. Daarna heb ik in de Docker GUI (Synology) de 3 ENV variabelen gezet.
De docker container geeft errors en lijkt niets te doen.
Toen heb ik de container verwijderd en opnieuw met "docker run --env-file .... .." vanaf de SSH command line gestart en natuurlijk in de file de 3 environment variables gezet. Ook nu stopt hij weer. Beide met dezelfde foutmelding dat de ENV variables leeg zijn.. ?
023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:21 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:21 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] online
20:13:21 PM2 | App [unlimited-sim:0] online
20:13:21 0|unlimited-sim | 2023-09-19T20:13:21: ENV variables not set
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:21 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:21 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] online
20:13:21 PM2 | App [unlimited-sim:0] online
20:13:21 0|unlimited-sim | 2023-09-19T20:13:21: ENV variables not set
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:21 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:21 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:21: PM2 log: App [unlimited-sim:0] online
20:13:21 PM2 | App [unlimited-sim:0] online
20:13:22 0|unlimited-sim | 2023-09-19T20:13:22: ENV variables not set
2023-09-19T20:13:22: PM2 log: App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
20:13:22 PM2 | App [unlimited-sim:0] exited with code [0] via signal [SIGINT]
2023-09-19T20:13:22: PM2 log: App [unlimited-sim:0] starting in -fork mode-
20:13:22 PM2 | App [unlimited-sim:0] starting in -fork mode-
2023-09-19T20:13:22: PM2 log: App [unlimited-sim:0] online
20:13:22 PM2 | App [unlimited-sim:0] online
20:13:22 0|unlimited-sim | 2023-09-19T20:13:22: ENV variables not set
- Je hebt toch vergeten AUTHORIZATIONTOKEN of MSISDN te zetten (vergeet niet hoofdletters)
- Je zit perongelijk toch op de image van lodu (De readme van mijn repo klopt op het moment niet)
De commands voor pull & draaien zijn:
docker pull ghcr.io/guusbackup/tmobile-nl-unlimited-bundle-automated:main
en om te draaien:
docker run --env-file .env ghcr.io/guusbackup/tmobile-nl-unlimited-bundle-automated:main
Thanks! Dat was het, het stond inderdaad nog niet goed in de README en ook de link die je gaf miste nog 1 dingetjeThaGuus schreef op dinsdag 19 september 2023 @ 23:00:
[...]
2 opties die ik kan bedenken die dit kan geven (want ik heb het getest en heb zelf de docker container ook draaien)
- Je hebt toch vergeten AUTHORIZATIONTOKEN of MSISDN te zetten (vergeet niet hoofdletters)
- Je zit perongelijk toch op de image van lodu (De readme van mijn repo klopt op het moment niet)
De commands voor pull & draaien zijn:
docker pull ghcr.io/guusbackup/tmobile-nl-unlimited-bundle-automated:main
en om te draaien:
docker run --env-file .env ghcr.io/guusbackup/tmobile-nl-unlimited-bundle-automated:main
Het is: docker pull ghcr.io/guusbackup/tmobile-nl-unlimited-bundle-automated-docker:main
Daarna zie je de image gewoon in Synology Container Manager (Docker) en kun je de variabelen daar toevoegen en runnen.
Als ik hem run dan zegt hij bijv: 498000MBs left. (bij 4G voor thuis krijg je 500GB die je kunt opwaarderen).
Kun je met een ENV variable instellen bij welke limiet hij opwaardeerd?
...don't know what should be here...
Momenteel niet nee (kan vanavond t er even snel voor je in zetten als je wilt).Roel Broersma schreef op woensdag 20 september 2023 @ 18:01:
[...]
Kun je met een ENV variable instellen bij welke limiet hij opwaardeerd?
Als je t echt nu nu wilt kan je deze lijn aanpassen en de container zelf bouwen (gebeurt automatisch na merge), moet je hem wel even forken
Code van Guus en mij loopt gelijk op het moment van schrijven.
[ Voor 5% gewijzigd door lodu op 21-09-2023 15:37 ]
al had ik vanmorgen wel even het idee dat ik een volgende feature vanuit odido te pakken had...
na exact 40.000MB ging de snelheid van 180~200mbits terug naar amper 5mbits..
en onwerkbaar door de enorme latency...
oh bleek dat de "site" om de hoek er gewoon uit te liggen... en de omliggende sites hadden moeite met het opvangen van de "missende" capaciteit :-)
404 Signature not found
Hee Lodu, als je die VAR erbij wilt zetten, voor MBLEFT, heel graaglodu schreef op donderdag 21 september 2023 @ 15:33:
[...]
Momenteel niet nee (kan vanavond t er even snel voor je in zetten als je wilt).
Als je t echt nu nu wilt kan je deze lijn aanpassen en de container zelf bouwen (gebeurt automatisch na merge), moet je hem wel even forken
Code van Guus en mij loopt gelijk op het moment van schrijven.
...don't know what should be here...
Yep.. al had ik liever de aanvullers opgerekt zien worden... naar 5GB per keer ofzo :-)
404 Signature not found
Heb the docker image van @ThaGuus draaien op mijn Synology en de verbinding met Odido tot stand gebracht met de authenticator. We checken nu iedere 5 minuten het aantal overgebleven MB en die krijgen we netjes door.
Wanneer we echter een nieuwe bundle aanvragen krijgen we de onderstaande melding:
1
| 18:19:21 0|unlimited-sim | 2023-10-19T18:19:21: 0 MB's left |
Gevolgd door:
1
| 18:19:22 0|unlimited-sim | 2023-10-19T18:19:22: Cannot already get new bundle |
Zit er een verschil tussen de oude Tele2 abo's en T-Mobile abo's en hoe zouden we dit kunnen verhelpen?
Het is mogelijk dat je een andere "BuyingCode" nodig hebt om een nieuwe bundel aan te vragen,pieterb82 schreef op donderdag 19 oktober 2023 @ 20:32:
Goedeavond heren, kwam op dit topic naar aanleiding van de Odido rebranding van Tele2. Nu gebruiken wij een Tele2 Unlimited internet abonnement als onze vaste internet verbinding in het buitengebied. Het gaat met 4 kids wel hard met het aantal GB per dag en we komen daarom ook snel aan meer dan 10GB.
Heb the docker image van @ThaGuus draaien op mijn Synology en de verbinding met Odido tot stand gebracht met de authenticator. We checken nu iedere 5 minuten het aantal overgebleven MB en die krijgen we netjes door.
Wanneer we echter een nieuwe bundle aanvragen krijgen we de onderstaande melding:
code:
1 18:19:21 0|unlimited-sim | 2023-10-19T18:19:21: 0 MB's left
Gevolgd door:
code:
1 18:19:22 0|unlimited-sim | 2023-10-19T18:19:22: Cannot already get new bundle
Zit er een verschil tussen de oude Tele2 abo's en T-Mobile abo's en hoe zouden we dit kunnen verhelpen?
Ik zou vanavond wel even kijken of ik een debug mode kan toevoegen, die dit logt en dat je die dan met een env variable kan zetten.
In mijn laatste docker container (gister gepublished) kan je een env variable DEBUG=1 toevoegen, dan logt hij de buying codes naar de logs. (zodra je 80% hebt verbruikt of je de bundel kan kopen.)pieterb82 schreef op maandag 23 oktober 2023 @ 12:02:
@ThaGuus Helder, is er een manier om te achterhalen wat die buying code is? Misschien door in te loggen in de webinterface?
Hierna kan je via de env variable BUYINGCODE hem zetten
https://github.com/GuusBa...omated-docker#buying-code
[ Voor 8% gewijzigd door ThaGuus op 23-10-2023 14:48 ]
Ik heb een docker container draaien en de env staan in het systeem, alleen de log die zou moeten tonen welke bundel beschikbaar zijn logt geen info.
Op regel 13 van src/index.ts staat debug waar moet zijn aan true of 1 en dat word ook mee gegeven.
Als iemand hier een oplossing voor weet, hoor ik dat graag.
:fill(white):strip_exif()/f/image/x6ELYbblyv0AW8rYfLvL5nRh.png?f=user_large)
En je hebt de 80% sms al ontvangen? Want hij logt pas de bundel zodra je hem kan kopen, wat is rond de 80% sms.RingleRangelRob schreef op donderdag 14 december 2023 @ 23:08:
@ThaGuus Ik heb het zelfde probleem als @pieterb82 .
Ik heb een docker container draaien en de env staan in het systeem, alleen de log die zou moeten tonen welke bundel beschikbaar zijn logt geen info.
Op regel 13 van src/index.ts staat debug waar moet zijn aan true of 1 en dat word ook mee gegeven.
Als iemand hier een oplossing voor weet, hoor ik dat graag.
[Afbeelding]
Ja, in de log krijg ik de melding dat ik 0mb over heb, ook geprobeerd zelf een bundel booster te kopen en die leeg te trekken.ThaGuus schreef op vrijdag 15 december 2023 @ 00:39:
[...]
En je hebt de 80% sms al ontvangen? Want hij logt pas de bundel zodra je hem kan kopen, wat is rond de 80% sms.
Beide scenarios geven het zelfde resultaat dat ik geen nieuwe bundel nog kan kopen.
Oh apart, misschien zit er nog wel een fout in de container.RingleRangelRob schreef op vrijdag 15 december 2023 @ 15:26:
[...]
Ja, in de log krijg ik de melding dat ik 0mb over heb, ook geprobeerd zelf een bundel booster te kopen en die leeg te trekken.
Beide scenarios geven het zelfde resultaat dat ik geen nieuwe bundel nog kan kopen.
Je kan de bundelcode pakken van de website door element inspect te doen op https://www.odido.nl/my/aanvullers
/f/image/KiuYK40mVuy92BpErb29YVrQ.png?f=fotoalbum_large)
De bundel is inderdaad anders op hun website; T2UNLBB2ThaGuus schreef op vrijdag 15 december 2023 @ 17:36:
[...]
Oh apart, misschien zit er nog wel een fout in de container.
Je kan de bundelcode pakken van de website door element inspect te doen op https://www.odido.nl/my/aanvullers
[Afbeelding]
Echter krijg ik nogsteeds de melding dat ik geen nieuwe bundel kan kopen terwijl dit wel het geval is.
/f/image/MM8ikbZiv6xKKWyIQyhr4gEI.png?f=fotoalbum_large)
Bij Vodafone kun je via sms aanvullen, dus je zou gewoon een automatisatie kunnen aanmaken.jeroen-vaes schreef op dinsdag 23 januari 2024 @ 14:56:
Is het mogelijk er een te maken voor vodafone unlimited?
In theorie kun je gewoon een automation tool zoals Playwright of Selenium gebruiken om via de website van vodafone extra bundels aan te vragen (en huidige stand te checken).jeroen-vaes schreef op dinsdag 23 januari 2024 @ 15:22:
Dat zal helaas niet gaan, de sim router die ik heb heeft geen sms functie. Zou een andere manier mogelijk zijn?
Vodafone heeft geen captcha afaik, je zult alleen om de mfa heen moeten bouwen.
bij Odido sturen ze een SMS waarop de boel anticipeert..
misschien dat het voor de 4G voor Thuis / Datasims (097 nrs) anders werkt?
404 Signature not found
Zonde van die router om daar een Vodafone sim in te stoppenjeroen-vaes schreef op dinsdag 23 januari 2024 @ 17:06:
Het gaat om een Netgear nighthawk m6. Niet de pro
Ik heb de volgende stappen gedaan in docker:
1. create a file called `.env`:
AUTHORIZATIONTOKEN=xxxxxxxxxx
MSISDN=+3161234567890
UPDATE_INTERVAL=5
2. `docker pull ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main`
3. `docker run --env-file .env ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main`
Authorization Token zit in de .env file
Wanneer ik de container in docker geeft ie zoiets aan: 2024-01-31 19:24:07 18:24:07 0|unlimited-sim | 2024-01-31T18:24:07: 10799 MB's left
Dit terwijl mijn mb aanvullers verbruikt zijn en ik ze alsnog handmatig moet selecteren in de Odido app.
Mis ik hier een (aantal) stap(pen)?
probeer eensShief schreef op woensdag 31 januari 2024 @ 19:29:
2. `docker pull ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main`
3. `docker run --env-file .env ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main`
"ghcr.io/GuusBackup/tmobile-nl-unlimited-bundle-automated:main" bij beide.
de README van Guus verwijst naar mijn containers, terwijl ik de repo niet meer bijhoudt (niet gezegd dat hij dat wel doet btw)
[ Voor 4% gewijzigd door lodu op 01-02-2024 15:45 ]
Ik krijg bij guusbackup het volgende :lodu schreef op donderdag 1 februari 2024 @ 15:45:
[...]
probeer eens
"ghcr.io/GuusBackup/tmobile-nl-unlimited-bundle-automated:main" bij beide.
de README van Guus verwijst naar mijn containers, terwijl ik de repo niet meer bijhoudt (niet gezegd dat hij dat wel doet btw)
Error response from daemon: manifest unknown
moet nog -docker achteraan. Zie: https://github.com/GuusBa...d-bundle-automated-dockerShief schreef op vrijdag 2 februari 2024 @ 06:00:
[...]
Error response from daemon: manifest unknown
oopsie!lodu schreef op vrijdag 2 februari 2024 @ 09:51:
[...]
moet nog -docker achteraan. Zie: https://github.com/GuusBa...d-bundle-automated-docker
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: [
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: {
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: Zones: [ 'NL' ],
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: BundleCode: 'TM_B2B_NL_PASS_DAY',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: BuyingCode: 'A0DAY05',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: Name: '2 GB-aanvuller NL',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: Description: '2 GB, te gebruiken in NL. Vul je dagtegoed gratis en onbeperkt aan.',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: Size: 2048000,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: SizePresentation: '2000 MB',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: SpeedStepDown: null,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: OriginalPriceExclVat: 0,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: OriginalPriceExclVatPresentation: '€ 0,00',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: OriginalPriceInclVat: 0,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: OriginalPriceInclVatPresentation: '€ 0,00',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: PriceExclVat: 0,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: PriceExclVatPresentation: '€ 0,00',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: PriceInclVat: 0,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: PriceInclVatPresentation: '€ 0,00',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: HasDiscount: false,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: IsRecurring: false,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: IsPayForUse: false,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: ValidityInHours: null,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: ValidUntil: null,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: SortOrder: 'b07',
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: IsSsdPass: false,
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: BuyingCodeAliases: [ 'A0DAY05' ],
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: IsDayBundle: true
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: }
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: ]
2024-02-03 22:44:42 21:44:42 0|unlimited-sim | 2024-02-03T21:44:42: 9300 MB's left
Geeft dus aan dat ik een x aantal mb's over heb, terwijl ik overga naar extreem lage internetsnelheid en de mb's kan aanvullen in de odidio app.
Zie ik wat over het hoofd ?

[ Voor 140% gewijzigd door Shief op 03-02-2024 22:48 ]
Voeg deze regel toe aan je .env bestand en dan werkt het:Shief schreef op zaterdag 3 februari 2024 @ 21:54:
[...]
Geeft dus aan dat ik een x aantal mb's over heb, terwijl ik overga naar extreem lage internetsnelheid en de mb's kan aanvullen in de odidio app.
Zie ik wat over het hoofd ?
1
| BUYINGCODE=A0DAY05 |
https://f-droid.org/packages/com.jens.automation2/
Kan je uberhaupt een multisim kopen met een Unlimited abonnement?Docc schreef op vrijdag 9 februari 2024 @ 15:01:
Werkt dit met multisim? ben van plan om een odido unlimited abbo te nemen. Dan vraag ik een extra sim aan om in de Alcatel Mifi router MW70VK te stoppen.
Hier in ieder geval ThaGuus in "[T-Mobile] Automatisch 1-GB aanvullers activeren" succesvol werkend gekregen met de tool. Top!
Niet dat ik nu zo vaak 10GB per dag verbruik.
[ Voor 24% gewijzigd door rens-br op 20-02-2024 08:34 ]
Alleen of dat gaat werken.. En blijft werken? Immers ze kunnen denk ik wel achterhalen dat het geen smartwatch is...
Anders zou het een 2de abbo betekenen.. En dat is me het dan nog weer niet waard eigenlijk
404 Signature not found
Welke docker image is dit, want volgens mij heb je hem ingesteld dat hij alleen de bundels laat zien in plaats van dat hij aanvulttimverdonschot schreef op zaterdag 25 mei 2024 @ 12:26:
Iemand een idee waarom mijn mb's niet aangevuld worden, ik heb alle 3 de bundle codes geprobeerd:
[Afbeelding]
Node.js with YarnThaGuus schreef op zaterdag 25 mei 2024 @ 15:51:
[...]
Welke docker image is dit, want volgens mij heb je hem ingesteld dat hij alleen de bundels laat zien in plaats van dat hij aanvult
Dit laat ie zien als ik debug uit zet:
pm2 launched in no-daemon mode (you can add DEBUG="*" env variable to get more messages)
2024-05-25T16:46:00: PM2 log: Launching in no daemon mode
2024-05-25T16:46:00: PM2 error: [PM2][WARN] Folder does not exist: C:\Users\Tim Verdonschot\TMobile-NL-Unlimited-Bundle-Automated\logs
2024-05-25T16:46:00: PM2 log: [PM2] Creating folder: C:\Users\Tim Verdonschot\TMobile-NL-Unlimited-Bundle-Automated\logs
2024-05-25T16:46:00: PM2 log: [PM2] Starting C:\Users\Tim Verdonschot\TMobile-NL-Unlimited-Bundle-Automated\dist\index.js in fork_mode (1 instance)
2024-05-25T16:46:00: PM2 log: App [unlimited-sim:0] starting in -fork mode-
2024-05-25T16:46:00: PM2 log: App [unlimited-sim:0] online
2024-05-25T16:46:00: PM2 log: [PM2] Done.
2024-05-25T16:46:00: PM2 log: ┌─────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ unlimited-sim │ default │ N/A │ fork │ 7800 │ 0s │ 0 │ online │ 0% │ 39.6mb │ Tim… │ disabled │
└─────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
2024-05-25T16:46:00: PM2 log: [--no-daemon] Continue to stream logs
2024-05-25T16:46:00: PM2 log: [--no-daemon] Exit on target PM2 exit pid=4196
16:46:07 0|unlimited-sim | 2024-05-25T16:46:07: 955674 MB's left
Side note ^ MB's lopen dus leeg en worden niet aangevuld, op de site zie ik DAY01 in element inspect staan
[ Voor 67% gewijzigd door timverdonschot op 25-05-2024 17:16 ]
Heb je meer dan 10GB beschikbaar, dan is de check-interval 10 minuten. Tussen de 2-10GB beschikbaar, dan is de interval 2 minuten. Minder dan 2GB, dan is de interval 30 seconden. Dit zorgt ervoor dat de bundles sneller geactiveerd worden zodra je het nodig hebt, terwijl je onder de streep juist minder calls naar Odido doet omdat het op "rustige" dagen niet de hele tijd calls uitvoert. Have fun ermee
https://github.com/GuusBa...e-Automated-docker/pull/1
Docker image:
1
| renkosteenbeek/tmobile-nl-unlimited-bundle-automated:main |
[ Voor 13% gewijzigd door kamerplant op 03-07-2024 11:38 ]
🌞🍃
Mijn docker-compose.yaml ziet er nu zo uit:Unsupported config option for services: 'unlimited-sim'
1
2
3
4
5
6
7
8
9
10
| services: unlimited-sim: image: ghcr.io/GuusBackup/tmobile-nl-unlimited-bundle-automated:main environment: - AUTHORIZATIONTOKEN=$AUTHORIZATIONTOKEN - MSISDN=$MSISDN - BUYINGCODE=$BUYINGCODE - UPDATE_INTERVAL=$UPDATE_INTERVAL - DEBUG=$DEBUG command: yarn start-daemon |
Ik heb ook de default docker-compose.yaml geprobeerd die op GitHub staat, maar die geeft dezelfde foutmelding.
@kamerplant Hoe kan ik jouw aangepaste versie gestart krijgen via docker-compose?
Wellicht gebruik je een "oudere" compose versie? De property version (dus bv:Mr Magic schreef op zondag 4 augustus 2024 @ 22:58:
Ik probeer deze aan te praat te krijgen via docker-compose, maar krijg een error:
1
| version: 3.9 |
Als je die toevoegd werkt het dan?
Bedankt, dan werkt het inderdaad. M'n docker host VM is nog een oude Ubuntu 20.04.6 LTS versie. Hoewel alle packages wel up-to-date zijn, maar dat is blijkbaar niet voldoendelodu schreef op maandag 5 augustus 2024 @ 08:13:
[...]
Wellicht gebruik je een "oudere" compose versie? De property version is tegenwoordig verouderd.
Als je die toevoegt werkt het dan?
Overigens krijg ik hiermee alleen jouw versie en die van kamerplant werkend. Die van GuusBackup werkt niet, want dan klaagt docker-compose erover dat er alleen lowercase in de URL mag staan (en met lowercase krijg ik dan weer een manifest error).
Ik heb geen idee of die van mij nog werkt, zit zelf bij vodafone en gebruik/onderhoud de code dus ook niet meer. Heb destijds wel wat updates van Guus gemerged in mijn repo.Mr Magic schreef op maandag 5 augustus 2024 @ 09:04:
[...]
Overigens krijg ik hiermee alleen jouw versie en die van kamerplant werkend.
Zowel README als docker-compose van zowel Guus als kamerplant refereert nog wel naar mijn container (ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated-docker:main) zie ik. Daar zit dus wel (een deel van?) Guus' code in.
Kamerplant heeft zelf geen (container)image geupload naar de container registry.
Om kamerplant's code in Github te gebruiken zul je de repo moeten clonen en de image (in doco.yaml) moeten wijzen naar de lokale Dockerfile door [code]build: .[/code]
neer te zetten ipv image: <url>
Alternatief kan je zijn repo forken en dan een build draaien richting de github container registry (is een brakwerkende github action voor in de repo), dan hoef je niet te clonen.
Zijn image staat op docker hub: https://hub.docker.com/r/...ted-bundle-automated/tags
[ Voor 16% gewijzigd door lodu op 05-08-2024 11:46 . Reden: typo en schijnbaar heb ik ooit Guus z'n code gemerged in mijne ]
Ik heb de versie van @kamerplant nu werkend met docker-compose door dit in de docker-compose.yaml te zetten (dat stond overigens al in zijn bericht van 2 juli):
1
| image: renkosteenbeek/tmobile-nl-unlimited-bundle-automated:main |
De log geeft netjes elke 10 minuten aan hoeveel MB ik nog over hebt, dus het lijkt allemaal te werken:
unlimited-sim_1 | 08:16:57 0|unlimited-sim | 2024-08-05T08:16:57: 18893 MB's left
unlimited-sim_1 | 08:26:59 0|unlimited-sim | 2024-08-05T08:26:59: 18893 MB's left
unlimited-sim_1 | 08:37:02 0|unlimited-sim | 2024-08-05T08:37:02: 18764 MB's left
Ah check, hij staat op Docker Hub inderdaad: https://hub.docker.com/r/...ted-bundle-automated/tagsMr Magic schreef op maandag 5 augustus 2024 @ 10:44:
@lodu
Ik heb de versie van @kamerplant nu werkend met docker-compose door dit in de docker-compose.yaml te zetten (dat stond overigens al in zijn bericht van 2 juli):
[...]
Persoonlijk denk ik dat de interval vs available MB's checks nog wel wat ruimer kunnen.kamerplant schreef op dinsdag 2 juli 2024 @ 17:53:
Ik heb een kleine update gemaakt op TMobile-NL-Unlimited-Bundle-Automated-docker
Heb je meer dan 10GB beschikbaar, dan is de check-interval 10 minuten. Tussen de 2-10GB beschikbaar, dan is de interval 2 minuten. Minder dan 2GB, dan is de interval 30 seconden.
De Odido bundel heeft standaard 20 GB per dag en de checker begint nu vanaf 10 GB al elke 2 minuten te pollen:
Is het een idee om drie betreffende "MB's left" waardes configureerbaar te maken?unlimited-sim_1 | 15:17:51 0|unlimited-sim | 2024-08-05T15:17:51: 11764 MB's left
unlimited-sim_1 | 15:27:54 0|unlimited-sim | 2024-08-05T15:27:54: 10764 MB's left
unlimited-sim_1 | 15:38:00 0|unlimited-sim | 2024-08-05T15:38:00: 9764 MB's left
unlimited-sim_1 | 15:40:01 0|unlimited-sim | 2024-08-05T15:40:01: 9764 MB's left
unlimited-sim_1 | 15:42:03 0|unlimited-sim | 2024-08-05T15:42:03: 9764 MB's left
Ik zou bijvoorbeeld iets doen als "> 10 GB: elke 15 minuten, 2-10 GB: elke 5 minuten en < 2GB: elke 1 minuut".
Of misschien het aantal minuten voor elk "MB slot" ook configureerbaar maken?
EDIT:
Nog een vraagje. Na het activeren van de eerste 2 GB bundel, is er weer 4000 MB beschikbaar. Als de beschikbare MB's daarna weer onder de 2000 komen, probeert het script weer een nieuwe bundel toe te voegen, maar dat mag dan nog niet:
Als ik het goed begrijp moet je boven de 80% gebruik van je huidige bundel zitten voor je een nieuwe mag aanvragen. Dat zou betekenen dat je bij een 2 GB bundel pas een nieuwe mag aanvragen als je onder de 400 MB beschikbaar komt. Is dat aan te passen in het script?unlimited-sim_1 | 22:07:55 0|unlimited-sim | 2024-08-05T22:07:55: 1962 MB's left
unlimited-sim_1 | 22:07:56 0|unlimited-sim | 2024-08-05T22:07:56: Cannot already get new bundle
[ Voor 21% gewijzigd door Mr Magic op 05-08-2024 22:15 ]
Ik heb de code aangepast zodat hij automatisch de nieuwe BuyingCode ophaalt vanuit de API-respons.
Dit zal ik later hierop delen.
[ Voor 174% gewijzigd door Heyforlife op 07-09-2024 19:48 ]
Als iemand dit kan fixen voor zakelijk zou ik dit heel erg kunnen waarderen, gaat om een @Work abbo met een MB verdelertimverdonschot schreef op zaterdag 25 mei 2024 @ 16:48:
[...]
Node.js with Yarn
Dit laat ie zien als ik debug uit zet:
pm2 launched in no-daemon mode (you can add DEBUG="*" env variable to get more messages)
2024-05-25T16:46:00: PM2 log: Launching in no daemon mode
2024-05-25T16:46:00: PM2 error: [PM2][WARN] Folder does not exist: C:\Users\Tim Verdonschot\TMobile-NL-Unlimited-Bundle-Automated\logs
2024-05-25T16:46:00: PM2 log: [PM2] Creating folder: C:\Users\Tim Verdonschot\TMobile-NL-Unlimited-Bundle-Automated\logs
2024-05-25T16:46:00: PM2 log: [PM2] Starting C:\Users\Tim Verdonschot\TMobile-NL-Unlimited-Bundle-Automated\dist\index.js in fork_mode (1 instance)
2024-05-25T16:46:00: PM2 log: App [unlimited-sim:0] starting in -fork mode-
2024-05-25T16:46:00: PM2 log: App [unlimited-sim:0] online
2024-05-25T16:46:00: PM2 log: [PM2] Done.
2024-05-25T16:46:00: PM2 log: ┌─────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ unlimited-sim │ default │ N/A │ fork │ 7800 │ 0s │ 0 │ online │ 0% │ 39.6mb │ Tim… │ disabled │
└─────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
2024-05-25T16:46:00: PM2 log: [--no-daemon] Continue to stream logs
2024-05-25T16:46:00: PM2 log: [--no-daemon] Exit on target PM2 exit pid=4196
16:46:07 0|unlimited-sim | 2024-05-25T16:46:07: 955674 MB's left
Side note ^ MB's lopen dus leeg en worden niet aangevuld, op de site zie ik DAY01 in element inspect staan
PS: Kan iemand mij vertellen waar ik de buy codes vind in mijn account, dat zou voldoende zijn.
Edit
/f/image/eM8YbS0pjtDH3fPYtOod26qU.png?f=fotoalbum_large)
[ Voor 7% gewijzigd door timverdonschot op 12-12-2024 12:55 ]
https://github.com/GuusBa.../index.ts#L108C18-L108C19timverdonschot schreef op donderdag 12 december 2024 @ 12:23:
[...]
Als iemand dit kan fixen voor zakelijk zou ik dit heel erg kunnen waarderen, gaat om een @Work abbo met een MB verdeler
PS: Kan iemand mij vertellen waar ik de buy codes vind in mijn account, dat zou voldoende zijn.
Edit [Afbeelding] < naar mijn begrip zou de buycode A0DAY05 zijn, helaas geen effect. iemand slimmer?
${this.PERSONAL_API_URI}/availableroamingbundles geeft de mogelijke bundels terug die je via de api kan aanvragen, in princiepe zodra je een bundel kan aanvragen geeft dat endpoint het terug. Daarin zou de correct buycode moeten zitten.
Deze postman collection kan je ook nog wel helpen. Bij de variabelen hoef je alleen de access_token in te stellen. Daarna voer je stap 1 en 2 uit. Die vullen automatisch de variabelen linked_subscription_apiurl en subscription_apiurl in doormiddel van de tests.
Er zijn meerdere bundles in ZoneColor NL, waardoor je telkens 98348Mb terug krijgt. Dit is dan ook de verkeerde bundel. Door het volgende aan te passen wordt er naar de juiste bundle gekeken.
1
| src/providerModels/TMobile/index.ts |
regel 140
1
| if (bundle.ZoneColor == "NL" && bundle.BuyingCode == 'A0DAY01') { |
Doe vervolgens weer yarn build en run de tool. Nu zou het moeten werken.
Op dit moment heb ik 3 verschillende macro's ingesteld (met verschillende filters op de inkomende sms berichten).
1e: bij de eerste melding dat de bundel op is
2e: bij 80% aanvuller verbruikt
3e: bij 100% aanvuller verbruikt.
In alle gevallen stuurt ie direct een sms naar Odido om de boel weer af te toppen.
Ik weet nog niet wat de impact op de accu zal zijn overigens
Hopelijk is iemand hiermee geholpen!
stuktje schaamteloos knip- en plakwerk van vriend chatgpt
vraag:
how to set macrodroid trigger based on incoming text based off text content
ChatGPT said:
ChatGPT
To set a MacroDroid trigger based on the content of an incoming text message, follow these steps:
1. Install MacroDroid
Download and install MacroDroid from the Google Play Store.
Grant the necessary permissions, including access to SMS.
2. Create a New Macro
Open MacroDroid and tap on "Add Macro".
Select "Trigger" to choose the event that will activate your macro.
3. Set the SMS Trigger
Scroll through the list of triggers and select "SMS Received".
Configure the following:
Sender: Enter the specific number or name of the sender (e.g., "1300" or "Odido"). Leave it blank if you want the trigger to work for all senders.
Message Content: Enter a keyword or phrase from the message that should trigger the macro (e.g., "Your data is 80% used").
Example:
Sender: 1300
Message Content: "80% used"
Tap OK to save the trigger.
4. Add Actions
Tap "Add Action" to define what should happen when the trigger activates.
Choose from a range of actions. Common examples include:
Send an SMS: Send an automated reply or command.
Open App: Launch an app like Odido to top up data.
Show Notification: Display a reminder or alert.
Run a Task: Simulate user interaction or perform another action.
Customize the action to match your needs.
5. Optional: Add Constraints
Tap "Add Constraint" to limit when the macro runs.
Example constraints:
Time of Day: Only trigger between 8:00 AM and 8:00 PM.
Wi-Fi State: Only trigger when connected to Wi-Fi.
Save the constraint.
6. Save and Activate
Give your macro a descriptive name (e.g., "Data Usage Alert").
Tap the checkmark to save.
Ensure MacroDroid is running in the background to execute the macro when the trigger conditions are met.
Example Use Case
If you want to receive a notification when you get a message from "Odido" that says "80% used":
Trigger: SMS Received
Sender: Odido
Message Content: 80% used
Action: Show a notification saying, "Time to check your data usage!"
Constraint: Only trigger between 9:00 AM and 10:00 PM.
Tips
Test your macro by sending a sample SMS with the expected content to verify it works.
MacroDroid may require you to set it as your default SMS app temporarily to process incoming messages. You can revert this after configuring your macro.
PSN: Jirozi - Steam / uPlay / origin: jimz93
Je hebt er maar eentje nodigjimz93 schreef op zaterdag 4 januari 2025 @ 14:35:
Ik liep tegen hetzelfde probleem aan (ik wilde een geautomatiseerde "gb aanvuller". Ik heb dit nu opgelost door middel van de macrodroid app die op mijn telefoon draait. Bij een binnenkomende sms met de text van odido wordt automatisch "extra" ge-smst naar 1280:
Op dit moment heb ik 3 verschillende macro's ingesteld (met verschillende filters op de inkomende sms berichten).
1e: bij de eerste melding dat de bundel op is
2e: bij 80% aanvuller verbruikt
3e: bij 100% aanvuller verbruikt.
In alle gevallen stuurt ie direct een sms naar Odido om de boel weer af te toppen.
7090 kWp, 3 subsystemen (20x LG 320 Wp / 3x Canadian Solar 230 Wp)
Nee hoor, de lijst is hier ellenlang, soms met veel speedtesten gaat het om de minuut ongeveer.SMSfreakie schreef op zaterdag 4 januari 2025 @ 17:57:
per SMS kan je toch maar beperkter aanvullen per dag
7090 kWp, 3 subsystemen (20x LG 320 Wp / 3x Canadian Solar 230 Wp)
Oh dan hebben ze dat veranderd, bij T-Mobile was dit namelijk niet mogelijk (en op het begin bij odido ook niet, alleen als je van Tele2 af kwam)The Wizard schreef op zaterdag 4 januari 2025 @ 19:02:
[...]
Nee hoor, de lijst is hier ellenlang, soms met veel speedtesten gaat het om de minuut ongeveer.
Dan kan je ook geowon de oude automate scripts gebruiken, die zijn aardig simpel.
[ Voor 10% gewijzigd door ThaGuus op 05-01-2025 00:43 ]
PSN: Jirozi - Steam / uPlay / origin: jimz93
Aller eerst, hartelijk bedankt voor je response ! ik heb t bestand index.ts bewerkt, line 140 aangepast in if (bundle.ZoneColor == "NL" && bundle.BuyingCode == 'A0DAY01') {kerstens schreef op donderdag 26 december 2024 @ 10:51:
@timverdonschot
Er zijn meerdere bundles in ZoneColor NL, waardoor je telkens 98348Mb terug krijgt. Dit is dan ook de verkeerde bundel. Door het volgende aan te passen wordt er naar de juiste bundle gekeken.
code:
1 src/providerModels/TMobile/index.ts
regel 140code:
1 if (bundle.ZoneColor == "NL" && bundle.BuyingCode == 'A0DAY01') {
Doe vervolgens weer yarn build en run de tool. Nu zou het moeten werken.
yarn build op nieuw uitgevoerd
hij verwijst nu wel naar de juiste mb's alleen zegt hij dan cannot already get a new bundle.
Ik heb de buycode omgezet in A0DAY01, geen effect. ook buycode T2UNLBB2 geprobeerd. geen effect
Meeh u fixed it men! thanx! ben er heel blij mee, voor mensen die dus ook zon @work contract hebben als ik, BUYINGCODE=A0DAY05 dit is de gene die je zoekt.ThaGuus schreef op vrijdag 13 december 2024 @ 22:42:
https://gist.github.com/G...1ccf1154214be8b605d8cb88c
Deze postman collection kan je ook nog wel helpen. Bij de variabelen hoef je alleen de access_token in te stellen. Daarna voer je stap 1 en 2 uit. Die vullen automatisch de variabelen linked_subscription_apiurl en subscription_apiurl in doormiddel van de tests.
Super bedankt man
dit is een vbs file waarmee t script automatisch start wanneer je je pc opstart
open kladblok en kopieer onderstaande code in kladblok
Set objShell = CreateObject("WScript.Shell")
objShell.CurrentDirectory = "C:\Users\TMobile-NL-Unlimited-Bundle-Automated-docker-main"
objShell.Run "yarn start-daemon", 0, False
Verander t pad "C:\Users\TMobile-NL-Unlimited-Bundle-Automated-docker-main" in t pad waar jouw docker is opgeslagen.
Sla dit text bestand op als start-daemon.vbs
Maak een snelkoppeling van start-daemon.vbs
Plak de snelkoppelling in jouw startup folder C:\Users\" "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Nu start het script onzichtbaar zodra je je pc aanzet
[ Voor 4% gewijzigd door timverdonschot op 08-01-2025 19:34 ]
import {
AvailableBundle,
Bundle,
Subscription,
SubscriptionsResource,
} from "./interfaces";
import fetch, { Headers } from "node-fetch";
import { fetchURI, makeHeaders } from "../../utils";
import dotenv from "dotenv";
dotenv.config();
export default class TMobile {
private API_URI: string;
private PERSONAL_API_URI: string;
private TMOBILE_MSISDN: string;
private DEFAULT_HEADERS: object = {
"User-Agent": "ODIDO 8.0.0 (Android 12; 12)",
};
private DEFAULT_AUTH_TOKEN_HEADERS: object = {
Authorization: `Basic ${process.env.BASIC_AUTH_TOKEN}`,
"Content-Type": "application/json",
};
private BearerAuthorizationCode: string;
private subscriptionURL: string;
private buyingCode: string;
constructor(BASE_URI: string = "https://capi.odido.nl") {
this.API_URI = BASE_URI;
this.TMOBILE_MSISDN = process.env.MSISDN || "";
this.BearerAuthorizationCode = process.env.AUTHORIZATIONTOKEN || "";
}
private async getSubscriptionsResource(): Promise<SubscriptionsResource> {
const URI = `${this.API_URI}/account/current?resourcelabel=LinkedSubscriptions`;
const headers: Headers = makeHeaders({
...this.DEFAULT_HEADERS,
Authorization: `Bearer ${this.BearerAuthorizationCode}`,
Accept: "application/json",
});
const response = await fetch(URI, { method: "GET", headers });
return response.json();
}
private async handleSubscriptionURL(): Promise<string> {
const subscriptionsResource = await this.getSubscriptionsResource();
const URI = subscriptionsResource.Resources[0].Url;
const headers: Headers = makeHeaders({
...this.DEFAULT_HEADERS,
Authorization: `Bearer ${this.BearerAuthorizationCode}`,
Accept: "application/json",
});
const response = await fetch(URI, { method: "GET", headers });
const jsonResponse = await response.json();
const subscription = jsonResponse.subscriptions.find(sub => sub.MSISDN === this.TMOBILE_MSISDN);
this.PERSONAL_API_URI = subscription.SubscriptionURL;
this.subscriptionURL = `${this.PERSONAL_API_URI}/roamingbundles`;
return this.subscriptionURL;
}
public async getMBsLeft(): Promise<number> {
const subscriptionURL = this.subscriptionURL || await this.handleSubscriptionURL();
const headers: Headers = makeHeaders({
...this.DEFAULT_HEADERS,
Authorization: `Bearer ${this.BearerAuthorizationCode}`,
Accept: "application/json",
});
const response = await fetch(subscriptionURL, { method: "GET", headers });
const jsonResponse = await response.json();
const bundles = jsonResponse.Bundles;
let MBsLeft = bundles
.filter(b => b.ZoneColor === "NL" && b.BuyingCode !== process.env.EXCLUDED_BUNDLE_CODE)
.reduce((total, b) => total + b.Remaining.Value / 1024, 0);
this.buyingCode = process.env.BUYING_CODE || "";
if (MBsLeft === 0 || MBsLeft === 11000) {
console.log(`Bundel wordt aangevraagd. Beschikbare MB's: ${MBsLeft}`);
await this.requestBundle();
} else {
console.log(`Nog voldoende MB's: ${MBsLeft} MB`);
}
return Math.floor(MBsLeft);
}
public async requestBundle() {
const subscriptionURL = this.subscriptionURL || await this.handleSubscriptionURL();
const headers: Headers = makeHeaders({
...this.DEFAULT_HEADERS,
Authorization: `Bearer ${this.BearerAuthorizationCode}`,
Accept: "application/json",
"Content-Type": "application/json",
});
const body = JSON.stringify({
Bundles: [
{
BuyingCode: this.buyingCode,
OverrulesAlways: true
}
]
});
const response = await fetch(subscriptionURL, { method: "POST", headers, body });
if (response.status === 202) {
console.log("✅ Nieuwe bundel is succesvol toegevoegd.");
} else {
console.log("❌ Kan geen nieuwe bundel kopen. Mogelijk al actief.");
}
}
public async startAutoCheck(defaultIntervalInSeconds = 300, fastIntervalInSeconds = 30) {
console.log(`⏳ Automatische bundelcheck gestart.`);
let currentInterval = defaultIntervalInSeconds * 1000;
const checkAndAdjustInterval = async () => {
const MBsLeft = await this.getMBsLeft();
if (MBsLeft < 500) {
if (currentInterval !== fastIntervalInSeconds * 1000) {
console.log("⚡ MB's onder 500MB, versnellen naar snelle check.");
currentInterval = fastIntervalInSeconds * 1000;
}
} else {
if (currentInterval !== defaultIntervalInSeconds * 1000) {
console.log("🔄 MB's boven 500MB, vertragen naar standaard check.");
currentInterval = defaultIntervalInSeconds * 1000;
}
}
};
await checkAndAdjustInterval();
setInterval(checkAndAdjustInterval, currentInterval);
}
}
const tmobile = new TMobile();
tmobile.startAutoCheck(300, 30);
Docker
create a file called .env:
AUTHORIZATIONTOKEN=xxxxxxxxxx
MSISDN=+3161234567890
UPDATE_INTERVAL_HIGH=10
UPDATE_INTERVAL_MEDIUM=2
UPDATE_INTERVAL_LOW=0.5
BUYINGCODE=A0DAY01
DEBUG=0
docker pull ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main
docker run --env-file .env ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main
[ Voor 77% gewijzigd door Roy Tollenaar op 13-03-2025 17:40 ]
je hebt A0DAY05 buy code nodigRoy Tollenaar schreef op donderdag 13 maart 2025 @ 17:08:
Iemand een idee? Heb een Hello business abonnement. En gebruik deze in docker maar hoe kan ik er voor zorgen dat de 11GB lage snelheid bundel niet wordt meegerekend?
Docker
create a file called .env:
AUTHORIZATIONTOKEN=xxxxxxxxxx
MSISDN=+3161234567890
UPDATE_INTERVAL_HIGH=10
UPDATE_INTERVAL_MEDIUM=2
UPDATE_INTERVAL_LOW=0.5
BUYINGCODE=A0DAY01
DEBUG=0
docker pull ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main
docker run --env-file .env ghcr.io/lodu/tmobile-nl-unlimited-bundle-automated:main
Bedankt, was er alleen zelf al achter toen de nieuwe periode begon en ik de buying code kon zien.
Is dit een "vergoeding" vanwege de bereik onderbrekingen de laatste weken? heb hier niks over kunnen vinden online
Ze hebben waarschijnlijk het systeem van dataverbruik registratie uit gezet om beter te kunnen achterhalen hoe de storing is ontstaan. Zelfs prepaid sim en abonnement waarvan de bundel op is hebben nu gewoon data.Search4gpu schreef op maandag 30 juni 2025 @ 20:32:
iemand anders hier die niet meer hoeft op te waarderen? het script zegt al dagen lang dat ik 20gb heb.
Is dit een "vergoeding" vanwege de bereik onderbrekingen de laatste weken? heb hier niks over kunnen vinden online