Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!

Ik zie het als volgt:
vanaf mijn Syno roep ik de webpagina aan met een bepaald commando in de url, dat levert dan gegevens vanaf een bepaald datum/tijdstip. Of hij spuugt alles uit, dan filter ik het wel op de Syno.
Het moet vooral niet te moeilijk worden; basisfunctie is loggen en beschikbaar maken.
Precies, is later altijd aan te passen.
Wat we vergeten zijn in de lijst:
Levering - verbruik.
Top, houdt er ook rekening mee dat de gasmeterstand 1 keer per uur doorgegeven wordt naar de slimme meter in plaats van elke 10 sec.JoopC schreef op woensdag 26 september 2012 @ 07:51:
[...]
Precies, is later altijd aan te passen.
Wat we vergeten zijn in de lijst:
Levering - verbruik.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!

Nu eerst verbruik loggen met een S0 puls uit een Finder (en straks nog een 2e voor de PV opbrengst)
Zo, Reddo, je bent goed bezig zeg. ben wel benieuwd naar de programma code als alles draait.reddo schreef op woensdag 26 september 2012 @ 20:00:
Sinds vrijdag een slimme meter hier. De arduino er al even aangehad met p1 sketch en zowaar, op serialmonitor keurig een bericht![]()
Nu eerst verbruik loggen met een S0 puls uit een Finder (en straks nog een 2e voor de PV opbrengst)
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Ik zet het wel bij mijnbestand.nl
Om de programma code te kunnen draaien heb je 4.2.01 nodig.
Hier te downloaden:
http://forums.netduino.co...s-firmware-v420-update-1/
4.2.0.1 heb ik al draaien. Stuur je een link naar de programmacode zodat we het kunnen testen?JoopC schreef op donderdag 27 september 2012 @ 15:59:
Ik bedoel de Netduino programma code, Die je in je Netduino laat draaien.
Ik zet het wel bij mijnbestand.nl
Om de programma code te kunnen draaien heb je 4.2.01 nodig.
Hier te downloaden:
http://forums.netduino.co...s-firmware-v420-update-1/
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
deze http://gathering.tweakers.net/forum/view_message/38884073JoopC schreef op donderdag 27 september 2012 @ 12:23:
[...]
Zo, Reddo, je bent goed bezig zeg. ben wel benieuwd naar de programma code als alles draait.
nog verder geen logging dus helaas, dat lijkt mij niet zelf

Hier de eerste stappen om de Netduino op afstand te bedienen:
Bestand:
updated in latere posting
Hoe werkt het:
Maak een nieuw VB project aan, NetduinoPlus.
Open Module1, verwijder alle tekst zodat het bestand leeg is.
Copy en paste mijn programma code in de lege Module1.
Ga naar referenties en ADD system.IO
Pomp nu de code in je Netduino
Werking programma:
Als alles goed is gegaan zie je in je immediate window je Netduino web adres.
Open je explorer of andere browser en tik in je command regel:
Commando /flashled/two/three
http://[JOUW ADRES]/flashled/two/three
http://192.168.1.106/flashled/two/three
of
http://192.168.1.106/setled/ON
http://192.168.1.106/setled/OFF
je moet je Netduino wel op je router aansluiten.
Je kan in de code andere namen en dingen verzinnen.
Het adres 192........ is van mij en zal ongetwijfeld bij een ieder anders zijn.
Nu kan je over de gehele wereld je Netduino bedienen.
De ledjes die aan en uit gaan is om te testen, het doel is op afstand gegevens uit je Netduino te trekken etc.
[Voor 15% gewijzigd door Willie Wortel op 29-09-2012 13:23. Reden: nieuw bestand toegevoegd.]
Mooi zeg! Ik ga het vanavond even proberen. Nu aan het werk.JoopC schreef op donderdag 27 september 2012 @ 20:39:
...
Het adres 192........ is van mij en zal ongetwijfeld bij een ieder anders zijn.
Nu kan je over de gehele wereld je Netduino bedienen.
De ledjes die aan en uit gaan is om te testen, het doel is op afstand gegevens uit je Netduino te trekken etc.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
[Voor 28% gewijzigd door Willie Wortel op 28-09-2012 13:10]
En na kopieren van de code in Module.vb krijg ik de volgende foutmeldingen. Ik moet nog wat extra doen, maar wat?
1
2
3
4
5
6
| Error 1 'File' is not declared. It may be inaccessible due to its protection level. <PATH>\P1Module2\Module1.vb 104 32 P1Module2 Error 2 'Directory' is not declared. It may be inaccessible due to its protection level. <PATH>\P1Module2\Module1.vb 107 36 P1Module2 Error 3 'File' is not declared. It may be inaccessible due to its protection level. <PATH>\P1Module2\Module1.vb 124 24 P1Module2 Error 4 Type 'FileStream' is not defined. <PATH>\P1Module2\Module1.vb 126 50 P1Module2 Error 5 'Directory' is not declared. It may be inaccessible due to its protection level. <PATH>\P1Module2\Module1.vb 165 43 P1Module2 Error 6 'Directory' is not declared. It may be inaccessible due to its protection level. <PATH>\P1Module2\Module1.vb 170 51 P1Module2 |
[Voor 85% gewijzigd door Gé Brander op 28-09-2012 17:53]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
http:// [ je netduino ip adres ] \SHOWDIR
http://192.168.1.106/showdir
De foutmelding zie ik onder in Visual Studio. Ik heb het nog niet eens kunnen uploaden naar de Netduino daardoor. Het lijkt alsof er een fout in de code zit, iets niet declared.JoopC schreef op vrijdag 28 september 2012 @ 18:04:
Ben alweer een stukje verder met de prog code maar als commando showdir het niet doet, doe je wat niet goe ...............
http:// [ je netduino ip adres ] \SHOWDIR
http://192.168.1.106/showdir

[Voor 13% gewijzigd door Gé Brander op 29-09-2012 09:49]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Start je visual basic op met het progje.
Ga naar (ff spieken) ... Project/properties/refecences
en ADD system.IO
http://i1173.photobucket.com/albums/r593/JoopC/Refs.jpg
hier een videotje met de werking van de vernieuwde code . (pas op ik werk al met een : jij nog met een / in de command line)
http://youtu.be/NOWVgGn-qK4
commando's :
[ipadres] setled:on setled:off flashled:two:three showdir getfile:[bestand]
getest met browser explorer.
[Voor 27% gewijzigd door Willie Wortel op 30-09-2012 14:17]
Als ik onderstaande functie executeer in explorer dan leest mijn Netduino het verzoek, in dit geval CASE_ZEND_GAUGE_INFO. (Had ook verzoek JAAP_JOOP kunnen heten en is volkomen fictief)
Mijn probleem, wat moet ik terugzenden naar de webpage zodat pWatt etc met data gevuld wordt.
Hoop dat iemand dit oppikt want dan zijn de mogelijkheden legio, (mag ook op een andere manier geprogrammeerd zijn). Anders moet ik zelf in de boeken.
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
| function loadData() { // variable for the data point var pWATT; var pKWH; var pTEMP; //hier doe ik een request naar mijn Netduino (IP is mijn interne IP) $.getJSON('http://192.168.1.106/CASE_ZEND_GAUGE_INFO', function(dataWATT) { // get the data point pWATT = dataWATT.field1; pKWH = dataWATT.field2; pTEMP = dataWATT.field4; if (pKWH) { pKWH = Math.abs(pKWH); displayDataKWH(pKWH); } if (pWATT) { pWATT = Math.round(pWATT); displayDataWATT(pWATT); } if (pTEMP) { pTEMP = Math.min(pTEMP, 150); displayDataTEMP(pTEMP); } }); } |
Als content type: application/json, als body:JoopC schreef op zondag 30 september 2012 @ 11:03:
Als ik onderstaande functie executeer in explorer dan leest mijn Netduino het verzoek, in dit geval CASE_ZEND_GAUGE_INFO. (Had ook verzoek JAAP_JOOP kunnen heten en is volkomen fictief)
Mijn probleem, wat moet ik terugzenden naar de webpage zodat pWatt etc met data gevuld wordt.
Hoop dat iemand dit oppikt want dan zijn de mogelijkheden legio, (mag ook op een andere manier geprogrammeerd zijn). Anders moet ik zelf in de boeken.
{"field1":123,"field2":456,"field4":789}
Ik heb geen bijzondere kennis van JQuery, even gegoogled en je code lijkt me te kloppen
[Voor 6% gewijzigd door ricdijk op 30-09-2012 11:31]
1
2
3
4
| Dim ReturnMessage As String = "HTTP/1.0 200 OK" & vbCr & vbLf & "Content-Type: application/json" & vbCr & vbLf & "<html><body> {""field1"":123,""field2"":456,""field4"":789} </body></hmtl>" & vbCr & vbLf 'zend message terug Return ReturnMessage |
Hier de gehele html code voor de Google gauge en de data ophaalt van thingspeak. Maar ik wil het rechtstreeks lezen vanaf mijn Netduino.
http://www.mijnbestand.nl/Bestand-PGACIK7C3APB.rar
Het betreft een json message, de <html> tag is daarom niet op zijn plek. Ik gebruik zelf ook geen <body> tag:JoopC schreef op zondag 30 september 2012 @ 12:03:
Met deze return string niet, ik denk dat ik de gehele message moet zien, zal best wel wat vergeten zijn.
Visual Basic .NET:
1 2 3 4 Dim ReturnMessage As String = "HTTP/1.0 200 OK" & vbCr & vbLf & "Content-Type: application/json" & vbCr & vbLf & "<html><body> {""field1"":123,""field2"":456,""field4"":789} </body></hmtl>" & vbCr & vbLf 'zend message terug Return ReturnMessage
Hier de gehele html code voor de Google gauge en de data ophaalt van thingspeak. Maar ik wil het rechtstreeks lezen vanaf mijn Netduino.
http://www.mijnbestand.nl/Bestand-PGACIK7C3APB.rar
1
2
3
4
5
6
7
8
9
10
11
| sprintf(buf, "{\"s\":%i,\"h\":%i,\"t\":%i,\"nr\":%lu,\"t0\":%i,\"t1\":%i,\"t2\":%i}", chk, DHT11.humidity, DHT11.temperature, volgNr, t0, t1, t2); wifly.println(F("HTTP/1.1 200 OK")); wifly.println(F("Content-Type: application/json")); wifly.println(F("Connection: close")); wifly.print(F("Content-Length:")); wifly.println(sizeof(buf)+2); //(add 2 newlines) wifly.println(); wifly.println(buf); wifly.println(); |
nog bedankt.
Met andere woorden: jouw code op de webpagina gaat reeds verder terwijl het bericht vanaf de Netduino nog niet verstuurd is?
Heb ik ook wat problemen mee gehad bij het maken van mijn site.
De truuk was:
je verstuurt het request en je vertelt welke functie de boel verwerkt als het antwoord binnen komt.
Voorbeeldje:
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
| var slowxmlHttp; try { slowxmlHttp=new XMLHttpRequest(); } catch (e) { try { slowxmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { slowxmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Your browser does not support AJAX!"); }}} function slowupdate(){ //slow update every 1 minutes clearTimeout(tslow); slowxmlHttp.onreadystatechange=slow_fields; slowxmlHttp.open("GET","pvslow.php",true); slowxmlHttp.send(null); tslow=setTimeout("slowupdate()", slowtimeout); } function slow_fields(){ if(slowxmlHttp.readyState==4){ var slowreply = eval('(' + slowxmlHttp.responseText + ')'); document.getElementById("Status").innerHTML = ' '+ slowreply.Status; if (slowreply.Status == "Off") { document.getElementById("Status").style.color = "red"; } else if (slowreply.Status == "Idle" || slowreply.Status =="Feed in (AC)" || slowreply.Status =="Feed in (Regulated)") { document.getElementById("Status").style.color = "orange"; } else { document.getElementById("Status").style.color = "green"; } } } |
Je bent overigens heel goed bezig, JoopC. Bedankt!
disclaimer: ben absoluut geen webspecialist.
Kan je hier nog even op reageren?c70070540 schreef op vrijdag 28 september 2012 @ 17:23:
Heb je ook een schema hoe je de Netduino op de Slimme meter hebt aangesloten?
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Hans, dat weet ik niet, (Ik heb me nooit bezig gehouden met web programming.) feit is dat ik een voorbeeld webpagina nodig heb met een request naar de Netduino. Ik stuur dan een response terug naar de pagina. Al krijg ik dit maar in een variabele met alle troep erin, dan kan ik verder. Je zult nog versteld staan van de mogelijkheden.hansdegit schreef op zondag 30 september 2012 @ 15:43:
Gaat die communicatie niet asynchroon?
Ps (Misschien ben ik een komma vergeten bij de code van Ricdijk, maar dan doet ie het nie...zo eenvoudig kan het zijn. )
Misschien kan jij iets maken?
De Netduino server loopt verder als een zonnetje, niet kapot te krijgen. (dat moeten we hebben, geen zorgen kindje ppfff)
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
| Warning 1 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 211 17 P1Module2 Warning 2 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 217 13 P1Module2 Warning 3 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 222 13 P1Module2 Warning 4 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 237 17 P1Module2 Warning 5 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 237 17 P1Module2 Warning 6 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 240 21 P1Module2 Warning 7 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 240 21 P1Module2 Warning 8 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 240 21 P1Module2 Warning 9 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 242 21 P1Module2 Warning 10 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 242 21 P1Module2 Warning 11 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 243 25 P1Module2 Warning 12 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 244 21 P1Module2 Warning 13 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 258 33 P1Module2 Warning 14 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 258 33 P1Module2 Warning 15 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 268 33 P1Module2 Warning 16 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 280 13 P1Module2 Warning 17 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 282 17 P1Module2 Warning 18 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 282 17 P1Module2 Warning 19 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 109 37 P1Module2 Warning 20 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 109 37 P1Module2 Warning 21 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 138 33 P1Module2 Warning 22 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 169 17 P1Module2 Warning 23 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 169 17 P1Module2 Warning 24 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 174 17 P1Module2 Warning 25 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 174 17 P1Module2 Warning 26 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 211 17 P1Module2 Warning 27 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 217 13 P1Module2 Warning 28 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 222 13 P1Module2 Warning 29 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 237 17 P1Module2 Warning 30 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 237 17 P1Module2 Warning 31 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 240 21 P1Module2 Warning 32 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 240 21 P1Module2 Warning 33 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 240 21 P1Module2 Warning 34 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 242 21 P1Module2 Warning 35 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 242 21 P1Module2 Warning 36 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 243 25 P1Module2 Warning 37 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 244 21 P1Module2 Warning 38 opcode 'sub.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 258 33 P1Module2 Warning 39 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 258 33 P1Module2 Warning 40 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 268 33 P1Module2 Warning 41 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 280 13 P1Module2 Warning 42 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 282 17 P1Module2 Warning 43 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 282 17 P1Module2 Warning 44 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 109 37 P1Module2 Warning 45 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 109 37 P1Module2 Warning 46 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 138 33 P1Module2 Warning 47 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 169 17 P1Module2 Warning 48 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 169 17 P1Module2 Warning 49 opcode 'add.ovf' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 174 17 P1Module2 Warning 50 opcode 'conv.ovf.i4' -- overflow will not throw exception <PATH>\Projects\P1Module2\P1Module2\Module1.vb 174 17 P1Module2 |
Dit krijg ik te zien als ik de build opdracht geef in het debug menu. F5 geeft de volgende error:
1
2
3
| An exception occurred while attempting to launch the debugger: DebugPort.GetDeviceProcess() calles with no argument The operation could not be completed |
Ik heb in de references System.IO toegevoegd zoals JoopC als tip gaf.
Als ik in de project properties onder .Net Micro Framework kies voor Release en dan de NetduinoPlus_NetduinoPlus en vervolgens kies voor Build dan geeft hij de ene keer de foutmeldingen zoals bovenaan in deze post en de andere keer geeft hij aan Build Succeeded.
Ik heb duidelijk nog veel te weinig idee van wat ik aan het doen ben of er is iets heel erg stuk.
Maar even de Netduino opnieuw flashen en opnieuw beginnen.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Bij mij thuis werkt het vrij simpel: de webpagina doet een request en de server doet een echo van het resultaat. Als jij ervoor zorgt dat de Netduino een JSON string kan uitspugen op basis van een webrequest, kan ik evt een poging wagen om wat javascript te bakken wat dan de JSON string in de browser interpreteert.JoopC schreef op zondag 30 september 2012 @ 16:47:
[...]
Hans, dat weet ik niet, (Ik heb me nooit bezig gehouden met web programming.) feit is dat ik een voorbeeld webpagina nodig heb met een request naar de Netduino. Ik stuur dan een response terug naar de pagina. Al krijg ik dit maar in een variabele met alle troep erin, dan kan ik verder. Je zult nog versteld staan van de mogelijkheden.
Ps (Misschien ben ik een komma vergeten bij de code van Ricdijk, maar dan doet ie het nie...zo eenvoudig kan het zijn. )
Misschien kan jij iets maken?
De Netduino server loopt verder als een zonnetje, niet kapot te krijgen. (dat moeten we hebben, geen zorgen kindje ppfff)
Maar da's toch niet Netduino gerelateerd? Als jij die JSON kan uitspugen, is het in principe klaar. Het is dan aan de consument om iets met die info op de webpagina te doen.
Een voorbeeldje. Hier draait een Youless pulsmeter met een webinterface. Ik kan in mijn browser of vanaf mijn NAS een url die kant op sturen en dan volgt een JSON resultaat. Dan is de Youless dus klaar.
Het voorbeeld dat ik hierboven in dat javascript stukje postte, die call naar pvslow.php.. Als ik die in mijn browser rechtstreeks aanroep:
http://synas/pvslow.php
Krijg ik het volgende te zien in de browser:
Niets meer, niets minder. Het is aan de aanroepende webpagina in de browser om dat antwoord te interpreteren.{"Status":"Feed MPP)", StatusTime":"07:51:00" ,"kWhTotal":"3862.665" "kWhToday":"12.601","kWhCurMonth":"450.112" ,"kWhkWpCurYear":"700.356","TigoStatus":"online" ,"TigoStatusTime":"05:25:02"}
Kort door de bocht:
focus jij je op het serverdeel en uitspugen van de data. Het uitlezen etc komt wel goed.
Hans,
De Netduino server reageert als er een request binnenkomt, dat is het probleem niet.
Het probleem zit bij mijn kennis. Ik weet de schrijf wijze van een json response niet.
Ricdijk heeft al een beetje geholpen met zijn arduino prog code. Maar bij mij zonder resultaat, ik zie wat over het hoofd. Met andere woorden: Ik kan op een verzoek alle data terugsturen maar hoe is de schrijfwijze?
deze was niet goed
ReturnMessage = "HTTP/1.0 200 OK" & vbCr & vbLf & "Content-Type: application/json" & vbCr & vbLf & " {""field1"":123,""field2"":456,""field4"":789} " & vbCr & vbLf
Maar we komen er wel uit.
Update met de laatste nieuwe firmware van het netduino forum, hier een oude install video:
YouTube: Netduino Firmware Upgrade Tutorial
Hier een beginners video
YouTube: Netduino VB Button Blink Tutorial and Event Handlers
Ik heb na de header en na de body een dubbele CRLF:JoopC schreef op zondag 30 september 2012 @ 19:31:
ReturnMessage = "HTTP/1.0 200 OK" & vbCr & vbLf & "Content-Type: application/json" & vbCr & vbLf & " {""field1"":123,""field2"":456,""field4"":789} " & vbCr & vbLf
Maar we komen er wel uit.
ReturnMessage = "HTTP/1.0 200 OK" & vbCr & vbLf & "Content-Type: application/json" & vbCr & vbLf & vbCr & vbLf & "{""field1"":123,""field2"":456,""field4"":789}" & vbCr & vbLf & vbCr & vbLf
Zou dat nog uit kunnen maken?
Kan het zijn dat 'ThingSpeak.html' het nu gewoon doet bij mij (krijg wel telkens dezelfde JSON)?
[Voor 45% gewijzigd door ricdijk op 30-09-2012 20:27]
vind ik mooooooooi om te zien. real time data logging....the sky the limit....

dankzij Ricdijk kan ik nu json requests verzenden in MS explorer.
Alleen doet ie het nog nie in Google chrome, wat nu weer ppffffff
Weet iemand daar raad wat op.?.
Dus ik kan nu een request versturen en hij antwoordt met een json string?
ik had een vbCr & vbLf te weinig (waar deze dubbel staat in de regel staat)
1
2
3
4
5
6
| Select Case arCommands(0) Case "casezendterug" Dim ReturnMessage As String = "HTTP/1.0 200 OK" & vbCr & vbLf & "Content-Type: application/json" & vbCr & vbLf & vbCr & vbLf & "{""field1"":""2234"",""field2"":""12.17"",""field3"":""8.32"",""field4"":""5.1""}" & vbCr & vbLf return ReturnMessage 'hup verzenden die zooi |
Het werkt in Microsoft Internet Explorer, in Google Chrome nog niet.
1
2
3
4
5
6
7
8
| $.getJSON('http://192.168.1.106/CaseZendTerug', function(dataWATT) { // get the data point pWATT = dataWATT.field1; pKWH = dataWATT.field2; pTEMP = dataWATT.field4; |
Kort samengevat:
De Netduino luistert naar commando's zoals "Dir" of "getfile" of naar iets anders, wat je wilt.
Zo ook case CaseZendTerug, dit commando stuurt de returnMessage naar de server.
Kijk maar naar de opzet van Thingspeak.html, die werkt goed moet ik zeggen.
Dus in HTML:
$.getJSON('http://192.168.1.106/CaseZendTerug', function(dataWATT)
pWATT = dataWATT.field1;
in VB Netduino string die verzonden wordt: { "field1".........}
Daar moet ik dan ook de notatie van weten, en die weet ik nu niet.hansdegit schreef op maandag 01 oktober 2012 @ 14:22:
Niet als je een array uitstuurt.
Zal eens zoeken.
1
| [["01:00","0.000","0.000",null,"0.000"],["02:00","0.000","0.000",null,"0.000"],["03:00","0.000","0.000",null,"0.000"],["04:00","0.000","0.000",null,"0.000"],["05:00","0.000","0.000",null,"0.000"],["06:00","0.000","0.000",null,"0.000"],["07:00","0.000","0.000",null,"0.000"],["08:00","0.000","0.000",null,"0.000"],["09:00","0.039","0.007","160","0.039"],["10:00","0.139","0.025","227","0.178"],["11:00","0.242","0.043","536","0.420"],["12:00","0.299","0.054","508","0.719"],["13:00","0.466","0.084","763","1.185"],["14:00","0.491","0.088","729","1.676"],["15:00","0.471","0.085","870","2.147"],["16:00","0.426","0.077","857","2.573"],["17:00","0.000","0.000",null,"2.573"],["18:00","0.000","0.000",null,"2.573"],["19:00","0.000","0.000",null,"2.573"],["20:00","0.000","0.000",null,"2.573"],["21:00","0.000","0.000",null,"2.573"],["22:00","0.000","0.000",null,"2.573"],["23:00","0.000","0.000",null,"2.573"],["24:00","0.000","0.000",null,"2.573"]] |
Da's op basis van het volgende stukje php code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| $result = mysql_query($sql); $rows = mysql_numrows($result); while ($i < $rows) { $PVHour[]= array(mysql_result($result, $i, 0) //hour , mysql_result($result, $i, 3) // kWh , mysql_result($result, $i, 4) // Normalized , mysql_result($result, $i, 5) // PeakPower , mysql_result($result, $i, 6) // Accumulated ); $i++; } $fp=fopen($cachefile,'w+'); fwrite($fp, json_encode($PVHour)); fclose($fp); |
Hier wordt een array van 24 elementen gevuld met arrays van 5 elementen.
JSON code ziet er zo uit:
1
| {"cnt":"4457,005","pwr":453,"lvl":0,"dev":"","det":"","con":"OK","sts":"(52)","raw":0} |
Bron: http://wiki.td-er.nl/index.php?title=YouLess
Deze heb ik al, maar die van Hans nog nie.......Pixelmagic schreef op maandag 01 oktober 2012 @ 15:54:
Misschien heb je hier iets aan:
JSON code ziet er zo uit:
code:
1 {"cnt":"4457,005","pwr":453,"lvl":0,"dev":"","det":"","con":"OK","sts":"(52)","raw":0}
Bron: http://wiki.td-er.nl/index.php?title=YouLess
Zal het straks schrijven en vanavond? de Netduino programma code posten.
Moet ik wel een webpage hebben met enige code om het te testen.
Kunnen we ook een beetje spelen. Ik denk dat we met zijn allen een leuk iets kunnen maken.
Ik zie het zo (in de nabije toekomst):
Webpage button, historische gegevens, ->request N+ maanden, ->request N+ dagen, select dag, request N+alle data van die dag. (alles ophalen vanaf de sd kaart) Display in een grafiek. Voor mij is het nu eenvoudig te schrijven en de data aan te leveren, maar om zoiets in een web pagina in te bouwen......
Krijg de beta source code voor de N+ vanavond niet af, morgen verder.
Ben de fout afhandeling aan het schrijven, niet geheel onbelangrijk.
Over de SD kaart. Mag ik mijn 512 mb kaartje laten zitten, of is 2G echt een must?
Het is makkelijker om te zien waar het fout gaat door het in soep te laten lopen, en dan je code bijwerken. (bavianen/tiepgeiten test) Als je (bijna) zeker weet dat alles foutloos is geschreven, dan plak je de foutafhandeling erin.hansdegit schreef op maandag 01 oktober 2012 @ 22:30:
Is toch regel 1? Check for unexpected errors.
Over de SD kaart. Mag ik mijn 512 mb kaartje laten zitten, of is 2G echt een must?
Try
........code
Catch ex As Exception
.......error afhandeling
End Try
De SDkaart is prima, het gaat erom dat je de metingen kan wegschrijven. Ik doelde erop dat groter dan 2gieg op het ogenblik niet wordt ondersteund.
Anoniem: 463612
Dit is een zeer interesante topic, lees dan ook met jullie mee (heb helaas geen kennis van programeren). Had nog wel een vraagje over de gebruikte hardware, gebruiken jullie nu een Netduino Plus met FDTI kabel of een Netduino Plus met FDTI breakout board ? dan is een 7404 Chip toch niet meer nodig ?
Ik zelf gebruik nog niks (FDTI), dat verwacht ik ook niet. Heb de arduino serial.h bekeken en de data moet bitwise geNOT worden. Dit verschilt overigens per model.De een heeft wel en de ander geen inversie. Kan het nog niet uitproberen want mijn meter wordt volgende week pas geplaatst.Anoniem: 463612 schreef op dinsdag 02 oktober 2012 @ 09:44:
Goedemorgen,
Dit is een zeer interesante topic, lees dan ook met jullie mee (heb helaas geen kennis van programeren). Had nog wel een vraagje over de gebruikte hardware, gebruiken jullie nu een Netduino Plus met FDTI kabel of een Netduino Plus met FDTI breakout board ? dan is een 7404 Chip toch niet meer nodig ?
Maar misschien zijn er anderen die wel een draaiend geheel hebben.
http://www.mijnbestand.nl/Bestand-LAYL8X8VPZE4.rar
bestand opstarten met het bestandje NetduinoP1poortServer.sln
wil je TestNetduinoServerGoogleGauge.html uittesten, moet je wel het netwerk adres in het bestandje veranderen naar je eigen adres. 192.168...........
[Voor 24% gewijzigd door Willie Wortel op 02-10-2012 11:07]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| /ISk5\2MT382-1003 0-0:96.1.1(5A424556303035303639343233343131) 1-0:1.8.1(01033.453*kWh) 1-0:1.8.2(00571.255*kWh) 1-0:2.8.1(00181.088*kWh) 1-0:2.8.2(00418.733*kWh) 0-0:96.14.0(0002) 1-0:1.7.0(0000.00*kW) 1-0:2.7.0(0000.30*kW) 0-0:17.0.0(0999.00*kW) 0-0:96.3.10(1) 0-0:96.13.1() 0-0:96.13.0() 0-1:24.1.0(3) 0-1:96.1.0(3238303131303031323031313038323132) 0-1:24.3.0(121002130000)(00)(60)(1)(0-1:24.2.1)(m3) (00086.504) 0-1:24.4.0(1) ! |
Zo ziet de tekst eruit die uit de P1 poort komt.
Regel 4, 5, 6 en 7 zijn respectievelijk Laag afname, Hoog afname, Laag levering, Hoog levering.
Regel 17 is de identifier voor gas en regel 18 is de stand van de gasmeter.
In deze versie van de P1 poort zit er geen tijdstamp in, dus als we dat willen hebben dan zullen we de Netduino via een Timeserver deze informatie toe moeten laten voegen in de logging.
[Voor 27% gewijzigd door Gé Brander op 02-10-2012 13:22]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
JoopC schreef op dinsdag 02 oktober 2012 @ 12:31:
En waar staat op welke stand de meter staat, dus op stand hoog of laag?
1
2
3
4
| 1-0:1.8.1(01033.453*kWh) 1-0:1.8.2(00571.255*kWh) 1-0:2.8.1(00181.088*kWh) 1-0:2.8.2(00418.733*kWh) |
1-0:1.8.1 staat voor afname laag tarief
1-0:1.8.2 staat voor afname hoog tarief
1-0:2.8.1 staat voor levering laag tarief
1-0:2.8.2 staat voor levering hoog tarief
Deze codes staan allemaal vastgelegd in de P1 standaard. Zie op pagina 11 van dit document.
Het rare is echter dat ik op pagina 11 lees dat het volgens de standaard andersom moet zijn, maar in mijn geval is toch echt 1.8.1 laag (meeste verbruik) en 1.8.2 hoog (minste verbruik)
Voor meer informatie: Link
De huidige slimme meters hebben dus geen timestamp. De nieuwere meters die in de toekomst uitgerold gaan worden zullen dat wellicht wel gaan krijgen.
OF:
Bedoel je hoe je kan achterhalen of er nu tegen hoog of laag tarief geleverd wordt? Ik dacht dat regel 8 daarvoor zorgde:
1
| 0-0:96.14.0(0002) |
De twee geeft dan aan dat het hoog tarief is.
[Voor 13% gewijzigd door Gé Brander op 02-10-2012 13:36]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Regel 8. 1=laagtarief, 2=hoogtarief.JoopC schreef op dinsdag 02 oktober 2012 @ 12:31:
En waar staat op welke stand de meter staat, dus op stand hoog of laag?
Tenminste, zo haal ik het uit de pdf.
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
| Structure P1vars Dim TimeRead As DateTime Dim ConsumptionElectraHigh As Single Dim ConsumptionElectraLow As Single Dim ConsumptionGas As Single Dim SolarDeliveryHigh As Single Dim SolarDeliveryLow As Single Dim ElectraRate As ElectraRate End Structure Public Enum ElectraRate HIGH LOW End Enum Private Sub ReadPortP1() 'temporary building a string, just for testing purpose only Dim strReadP1Now As String = "/ISk5\2MT382-1003" & vbLf & _ "0-0:96.1.1(5A424556303035303639343233343131)" & vbLf & _ vbCrLf & _ "1-0:1.8.1(01033.453*kWh)" & vbLf & _ "1-0:1.8.2(00570.709*kWh)" & vbLf & _ "1-0:2.8.1(00181.088*kWh)" & vbLf & _ "1-0:2.8.2(00418.448*kWh)" & vbLf & _ "0-0:96.14.0(0002)" & vbLf & _ "1-0:1.7.0(0000.00*kW)" & vbLf & _ "1-0:2.7.0(0000.04*kW)" & vbLf & _ "0-0:17.0.0(0999.00*kW)" & vbLf & _ "0-0:96.3.10(1)" & vbLf & _ "0-0:96.13.1()" & vbLf & _ "0-0:96.13.0()" & vbLf & _ "0-1:24.1.0(3)" & vbLf & _ "0-1:96.1.0(3238303131303031323031313038323132)" & vbLf & _ "0-1:24.3.0(121002110000)(00)(60)(1)(0-1:24.2.1)(m3)" & vbLf & _ "(00086.406)" & vbLf & _ "0-1:24.4.0(1)" & vbLf Dim arP1Read As String() = strReadP1Now.Split(CChar(vbLf)) Dim strTmpvalue As String = "" 'the index of an array starts with 0, so row 1 = row 0 For t = 0 To arP1Read.Length - 1 Select Case t Case 3, 4, 5, 6 strTmpvalue = arP1Read(t).Substring(arP1Read(t).IndexOf("("c)) strTmpvalue = strTmpvalue.Substring(1, strTmpvalue.IndexOf("*"c) - 1) If t = 3 Then p1.ConsumptionElectraLow = CSng(strTmpvalue) ElseIf t = 4 Then p1.ConsumptionElectraHigh = CSng(strTmpvalue) ElseIf t = 5 Then p1.SolarDeliveryLow = CSng(strTmpvalue) Else p1.SolarDeliveryHigh = CSng(strTmpvalue) End If Case 7, 17 strTmpvalue = arP1Read(t).Substring(arP1Read(t).IndexOf("("c)) strTmpvalue = strTmpvalue.Substring(1, strTmpvalue.IndexOf(")"c) - 1) If t = 7 Then p1.ElectraRate = If(strTmpvalue = "1", ElectraRate.LOW, ElectraRate.HIGH) Else p1.ConsumptionGas = CSng(strTmpvalue) End If End Select Next p1.TimeRead = DateTime.Now End Sub |
[Voor 12% gewijzigd door Willie Wortel op 02-10-2012 15:15]
En dan de P1 structure als JSON versturen. Tenminste, dat denk ik.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Ja Hans, het verzenden etc is erg makkelijk te maken. We weten nu de schrijfwijze.hansdegit schreef op dinsdag 02 oktober 2012 @ 15:00:
kewl.
En dan de P1 structure als JSON versturen. Tenminste, dat denk ik.
En wat we ook moeten hebben is wat C700 al aanhaalde, is zoeken naar overeenkomsten in de berichten van alle meters. Niet alle meters zijn gelijk. Ik dacht dat ze allen in de string " *kWh " hadden. Dat is makkelijk te substracten. Het uitlezen moet echt bullit proof zijn.
De standen die we uit willen lezen zijn de 1.8.1, 1.8.2, 2.8.1, 2.8.2, 96.14.0 (hoog/laag) en de gasstand 24.2.1JoopC schreef op dinsdag 02 oktober 2012 @ 15:13:
[...]
Ja Hans, het verzenden etc is erg makkelijk te maken. We weten nu de schrijfwijze.
En wat we ook moeten hebben is wat C700 al aanhaalde, is zoeken naar overeenkomsten in de berichten van alle meters. Niet alle meters zijn gelijk. Ik dacht dat ze allen in de string " *kWh " hadden. Dat is makkelijk te substracten. Het uitlezen moet echt bullit proof zijn.
Punt is dat de elektrastanden op dezelfde regel staan als de identifier en de gasstand een regel lager dan de identifier. Het lijkt mij het beste daarop te zoeken. Gas lijkt ook op een ander punt af te wijken. 24.2.1 staat in mijn berichten tussen haakjes in een regel die begint met 24.3.0 terwijl de P1 V4 standaard er een aparte regel voor heeft. (om het makkelijk te maken)
P1 V4 standaard:
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
| /ISk5\2MT382-1000 1-3:0.2.8(40) 0-0:1.0.0(101209113020W) 0-0:96.1.1(4B384547303034303436333935353037) 1-0:1.8.1(123456.789*kWh) 1-0:1.8.2(123456.789*kWh) 1-0:2.8.1(123456.789*kWh) 1-0:2.8.2(123456.789*kWh) 0-0:96.14.0(0002) 1-0:1.7.0(01.193*kW) 1-0:2.7.0(00.000*kW) 0-0:17.0.0(016.1*kW) 0-0:96.3.10(1) 0-0:96.7.21(00004) 0-0:96.7.9(00002) 1-0:99.97.0(2)(1-0:96.7.19)(101208152415W)(0000000240*s)(101208151004W)(0000000301*s) 1-0:32.32.0(00002) 1-0:52.32.0(00001) 1-0:72:32.0(00000) 1-0:32.36.0(00000) 1-0:52.36.0(00003) 1-0:72.36.0(00000) 0-0:96.13.1(3031203631203831) 0- 0:96.13.0(303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C 3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F) 1-0:31.7.0.255(001*A) 1-0:51.7.0.255(002*A) 1-0:71.7.0.255(003*A) 1-0:21.7.0.255(01.111*kW) 1-0:41.7.0.255(02.222*kW) 1-0:61.7.0.255(03.333*kW) 1-0:22.7.0.255(04.444*kW) 1-0:42.7.0.255(05.555*kW) 1-0:62.7.0.255(06.666*kW) 0-1:24.1.0(003) 0-1:96.1.0(3232323241424344313233343536373839) 0-1:24.2.1(101209110000W)(12785.123*m3) 0-1:24.4.0(1) !141B |
[Voor 48% gewijzigd door Gé Brander op 02-10-2012 15:23]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Is het een idee om -bij wijze van test/wens/parameterisering- de p1 data gewoon raw uit te lezen? Dus het kale bericht over de lijn naar de webclient te gooien?
Het lastige is dat we nu al met twee verschillende versies te maken hebben van de P1 standaard (P1 V2.2 en P1 V4).hansdegit schreef op dinsdag 02 oktober 2012 @ 15:23:
Volgens mij kwestie van heel hoofdstuk 6 in een case statement gieten. Ik zie overigens in de pdf dat er bij de gas readings wel degelijk een date/time verstuurd zou moeten worden.
Als je behoefte hebt aan testdata, ik ben die nu aan het verzamelen voor mijn slimme meter die voldoet aan de P1 V2.2 standaardIs het een idee om -bij wijze van test/wens/parameterisering- de p1 data gewoon raw uit te lezen? Dus het kale bericht over de lijn naar de webclient te gooien?
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Ik heb een USB naar ethernet device in de meterkast hangen waarop ik een TTL-232R 5V kabel heb aangesloten en die via een verloop op de P1 poort. De kabel kan je programmeren zodat deze de signalen inverteert. Je hebt drie kabeltjes die je aan moet sluiten.hansdegit schreef op dinsdag 02 oktober 2012 @ 15:27:
Welke code gebruik je daarvoor? Ik heb ook zo'n ISKRA 382, zou dolgraag iets op mijn Netduino willen hebben, maar durfde het nog niet aan JoopC te vragen....Stekkertje is al klaar. Weet jij dan al hoe je de draden op de Netduino aansluit? (blijkbaar wel)
De USB naar ethernet device (een soort van uitgebreide printserver) kan ik dan via software boven op mijn pc aanspreken zodat de computer denkt dat ik een extra RS232 poort heb die ik vervolgens met Advance Serial Data Logger 4.0.2.918 (software) kan uitlezen en de berichten per txt bestand kan opslaan.
Het heeft even geduurd voor ik dit werkend had.
Maar:
Pin 2 van de P1 poort heb ik aangesloten op pin 2 (bruin) van de kabel (RTS/CTS)
Pin 3 van de P1 poort heb ik aangesloten op pin 1 (zwart) van de kabel (GND)
Pin 5 van de P1 poort heb ik aangesloten op pin 5 (geel) van de kabel (RXD)
Met alleen deze kabel aangesloten op de P1 poort werkt het niet, maar ik heb een splitter waarmee ik nu 3 devices heb aangesloten op de P1 poort (Smile P1 en Energq Gateway) en dan doet hij het wel.
Ik vermoed dat het te maken heeft met het request signaal (pin 2). Deze werkt niet als hij alleen aangesloten zit, daar zou ik nog een aparte verbinding voor moeten maken vanaf de +5V. Maar omdat de andere devices de pin 2 op de P1 poort al hoog brengen ontvangt de kabel ook de data.
[Voor 25% gewijzigd door Gé Brander op 02-10-2012 16:18]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Op eigen verantwoording.
Zoals ik heb gelezen, RX (dus TX van de P1) op D2 van de Netduino, ground van P1 op ground van de Netduino, RX van P1 op 5v. dan gaat het feest beginnen.
Je moet dus D2 van de netduino uitlezen. Ik heb dus zelf niks kunnen testen.
1
2
3
4
5
6
7
8
9
10
11
| Imports System.IO.Ports Dim ComBuferLength As Integer = 1024 Dim ComBuffer As Byte() = New Byte(ComBuferLength - 1) {} Dim ComPoort2 As New SerialPort(SerialPorts.COM2, 9600, Ports.Parity.None, 8, Ports.StopBits.One) ComPoort2.Open() ComPoort2.Read(ComBuffer, 0, ComBuferLength) For t = 0 To ComBuffer.Length - 1 Debug.Print(ComBuffer(t).ToString) Next |
Als je onleesbare tekst krijg dan weet je in ieder geval dat ie wat doe.
Kleine aanpassing: Parity even en 7 bitsJoopC schreef op dinsdag 02 oktober 2012 @ 16:21:
Nou Hans, het is geen rocket sience :-)
Op eigen verantwoording.
Zoals ik heb gelezen, RX (dus TX van de P1) op D2 van de Netduino, ground van P1 op ground van de Netduino, RX van P1 op 5v. dan gaat het feest beginnen.
Je moet dus D2 van de netduino uitlezen. Ik heb dus zelf niks kunnen testen.
Visual Basic .NET: filename
1 2 3 4 5 6 7 8 9 10 11 Imports System.IO.Ports Dim ComBuferLength As Integer = 1024 Dim ComBuffer As Byte() = New Byte(ComBuferLength - 1) {} Dim ComPoort2 As New SerialPort(SerialPorts.COM2, 9600, Ports.Parity.None, 8, Ports.StopBits.One) ComPoort2.Open() ComPoort2.Read(ComBuffer, 0, ComBuferLength) For t = 0 To ComBuffer.Length - 1 Debug.Print(ComBuffer(t).ToString) Next
Als je onleesbare tekst krijg dan weet je in ieder geval dat ie wat doe.

Net een leuk stukje vertaald software tegengekomen om serieel uit te kunnen lezen. Het was vertaald naar het nederlands versie. "Even" werd vertaald met "Zelfs"... Het duurde even voordat ik die doorhad

[Voor 9% gewijzigd door Gé Brander op 02-10-2012 16:26]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Maar je hebt nu een 2e uitlezing van je P1 geplaatst, geheel anders en veel langer.c70070540 schreef op dinsdag 02 oktober 2012 @ 16:24:
[...]
Kleine aanpassing: Parity even en 7 bits
Wat nu?
? Ik vat hem even niet denk ik...JoopC schreef op dinsdag 02 oktober 2012 @ 16:26:
[...]
Maar je hebt nu een 2e uitlezing van je P1 geplaatst, geheel anders en veel langer.
Wat nu?
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Ik snap hem nog steeds niet... Ligt geheel aan mij hoor...

Oh wacht...
Je bedoelt dat het bericht dat ik daar geplaatst heb anders is dan de eerste?
Dat klopt. We hadden het volgens mij over hoe we het bulletproof zouden kunnen maken. Daarop heb ik de opmerking geplaatst dat er intussen twee P1 standaarden zijn. De P1 v2.2 standaard zoals die gebruikt wordt in de nu geplaatste slimme meters, en de P1 v4.0 standaard zoals deze gebruikt gaat worden in de slimme meters die vanaf komend jaar geplaatst gaan worden.
De P1 v4.0 bevat meer informatie, zoals tijdstamp, drie fasen informatie en meer.
De P1 v2.2 is degene die ik als eerste plaatste, de korte, die ik en Hans hebben.
Voorbeeld van een bericht (V2.2) van een ander type meter:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| /KMP5 ABCD000123456789 0-0:96.1.1(2041424344303030313233343536373839) 1-0:1.8.1(00080.000*kWh) 1-0:1.8.2(00039.000*kWh) 1-0:2.8.1(00000.000*kWh) 1-0:2.8.2(00000.000*kWh) 0-0:96.14.0(0002) 1-0:1.7.0(0000.22*kW) 1-0:2.7.0(0000.00*kW) 0-0:17.0.0(999*A) 0-0:96.3.10(1) 0-0:96.13.1() 0-0:96.13.0() 0-1:24.1.0(3) 0-1:96.1.0(3031323334353637383930313233343536) 0-1:24.3.0(120403080000)(000008)(60)(1)(0-1:24.2.1)(m3) (00053.271) 0-1:24.4.0(1) ! |
Van deze website
[Voor 78% gewijzigd door Gé Brander op 02-10-2012 17:02]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
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
| Imports Microsoft.SPOT Imports Microsoft.SPOT.Hardware Imports SecretLabs.NETMF.Hardware Imports System.IO.Ports Imports SecretLabs.NETMF.Hardware.NetduinoPlus Module Module1 Sub Main() Dim ComBuferLength As Integer = 1024 Dim ComBuffer As Byte() = New Byte(ComBuferLength - 1) {} Dim ComPoort2 As New SerialPort(SerialPorts.COM2, 9600, Parity.Even, 7, StopBits.One) ComPoort2.Read(ComBuffer, 0, ComBuferLength) For t = 0 To ComBuffer.Length - 1 Debug.Print(ComBuffer(t).ToString) Next End Sub End Module |
10 Warnings, maar dat mag de pret niet drukken. Ik zal de stekker eens in de P1 steken. Moet ik nog additionele voeding regelen? Nee toch?
edit:jammer.
"An unhandled exception of type 'System.ArgumentException' occurred in Microsoft.SPOT.Hardware.SerialPort.dll"
[Voor 111% gewijzigd door hansdegit op 02-10-2012 18:03]
Volgens mij moet het zo kunnen werken:Start je visual basic op met het progje.
Ga naar (ff spieken) ... Project/properties/refecences
en ADD system.IO
http://i1173.photobucket.com/albums/r593/JoopC/Refs.jpg

Ik heb een 74LS04P gebruikt om het signaal te inverteren naar de Netduino.
Dit is het schema hoe ik het ga proberen:


Ik ben dus klaar om te testen. JoopC heb jij al een stuk code af wat ik kan testen, zodat ik bijvoorbeeld op een website de tekst kan zien of zo?
[Voor 62% gewijzigd door Gé Brander op 02-10-2012 20:38]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
edit:jammer.
"An unhandled exception of type 'System.ArgumentException' occurred in Microsoft.SPOT.Hardware.SerialPort.dll"
Hans, komt goed, Ik kijk vanavond en anders morgen ochtend, anders krijg ik met de mattenklopper.

Maar onthou, 12v is dodelijk voor de N+ onbeschermd.!
Ik had het reeds draaien, maar toen klapte heel VB eruit. Ik denk dat ik de pins verkeerd had aangesloten. Ik zoek nog even in dit draadje waar de RX van COM2 zit.
Probleem van praktische aard is dat het snoer naar de meterkast te kort is om het geheel liggend in de huiskamer te testen. Gaat inderdaad goedkomen.
Kijk even naar mijn foto. Het gele draadje gaat naar de RX van com2. De derde digitale pin (D2)hansdegit schreef op dinsdag 02 oktober 2012 @ 20:49:
Ik maak me geen zorgen, hoor. Alleen: Visual Studio is een beetje nieuw voor me. VB helemaal.
Ik had het reeds draaien, maar toen klapte heel VB eruit. Ik denk dat ik de pins verkeerd had aangesloten. Ik zoek nog even in dit draadje waar de RX van COM2 zit.
Probleem van praktische aard is dat het snoer naar de meterkast te kort is om het geheel liggend in de huiskamer te testen. Gaat inderdaad goedkomen.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Dit is op te lossen door de AltSerial library te gebruiken.CIM schreef op donderdag 06 september 2012 @ 20:45:
Ik heb zojuist mijn P1 poort weten uit te lezen middels enkel een Arduino en drie draadjes. Zonder inverter of TTL kabel dus.
Ik loop nog tegen 1 issue aan, wat met Arduino 1.0.2 hopelijk wordt opgelost. Dit heeft te maken met de niet-standaard serial parameters, waar meer mensen tegenaan lopen. Helemaal 'af' is mijn oplossing nog niet, al ben ik wel zo ver dat dit het delen waard is. Let op: het telegram wat middels onderstaande voorbeeld-code wordt uitgelezen is 95% correct. Er ontbreken in sommige gevallen dus karakters!
Hoe werkt het? Mijn code maakt gebruik van de nieuwe SoftwareSerial library, welke sinds Arduino 1.0 de nieuwe standaard is. Deze library ondersteunt softwarematige inversion, wat de 7404 of TTL kabel overbodig maakt.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11, true); // RX, TX, inverted void setup() { mySerial.begin(9600); delay(1); Serial.begin(9600); } void loop() { while (mySerial.available() > 0) { incomingByte = mySerial.read(); incomingByte &= ~(1 << 7); char inChar = (char)incomingByte; Serial.write(inChar); } }
//update: Arduino 1.0.2 lost dit niet op
zie ook http://zonnigbreda.blogsp...ting-online-met-cosm.html
read2Line functie.
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
| Imports Microsoft.SPOT Imports Microsoft.SPOT.Hardware Imports SecretLabs.NETMF.Hardware Imports SecretLabs.NETMF.Hardware.NetduinoPlus Imports System.IO Imports System.IO.Ports Namespace HansP1PoortListner Public Class SerialPortP1 Shared spSerialPort As SerialPort Shared OnboardLed As New OutputPort(Pins.ONBOARD_LED, False) Shared intFileCounter As Integer = 0 Public Shared Sub Main() spSerialPort = New SerialPort(SerialPorts.COM2, 9600, Parity.Even, 7, StopBits.One) AddHandler spSerialPort.DataReceived, New SerialDataReceivedEventHandler(AddressOf Serial_DataReceived) spSerialPort.Open() 'forever sleep, for testing purpose only. Thread.Sleep(Timeout.Infinite) End Sub Private Shared Sub Serial_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Dim bBytesToRead As Integer = spSerialPort.BytesToRead If bBytesToRead > 0 Then Dim bBuffer As Byte() = New Byte(bBytesToRead - 1) {} spSerialPort.Read(bBuffer, 0, bBuffer.Length) Dim blnLedOnOff As Boolean = True For t = 0 To bBytesToRead - 1 Debug.Print(bBuffer(t).ToString) OnboardLed.Write(blnLedOnOff) blnLedOnOff = Not blnLedOnOff Thread.Sleep(10) Next P1FileLogger(bBuffer) End If OnboardLed.Write(False) End Sub Private Shared Sub P1FileLogger(ByVal bBuffer As Byte()) Dim strPath As String = Nothing Dim strFileName As String = Nothing strPath = "\SD\" & DateTime.Now.ToString("MM(MMM)-yyyy") strFileName = strPath & "\" & DateTime.Now.ToString("dd-MM(MMM)-yyyy-") & intFileCounter.ToString & ".log" If Not File.Exists(strFileName) Then If Not Directory.Exists(strPath) Then Directory.CreateDirectory(strPath) End If End If Using writer As New StreamWriter(strFileName, True) writer.WriteLine("Time of Logging : " & DateTime.Now) writer.WriteLine(bBuffer) End Using intFileCounter += 1 End Sub End Class End Namespace |
[Voor 34% gewijzigd door Willie Wortel op 03-10-2012 08:21. Reden: code toegevoegd]

Ik krijg allerlei data uit de seriele poort. Allemaal getalletjes die we nog moeten parsen en interpreteren, maar bottom line: we have lift off.
Wat helemaal leuk is: de meter antwoordt ook als er 3.3v op de request lijn gezet wordt. Wat minder leuk is: hij antwoordt niet meteen, maar in zijn eigen ritme.
Output (komma's en spaties zijn van mij):
40, 27, 86, 10, 101, 89, 100, 82, 114, 22, 86, 86, 86, 31, 37, 62, 11, 13, 19, 35, 70, 94, 21, 125, 54, 46, 42, 21, 19, 25, 31, 25, 31, 25, 21, 25, 31, 25, 19, 25, 13, 25, 50, 50, 31, 25, 25, 25, 50, 90, 74, 86, 74, 31, 11, 70, 70, 94, 31, 31, 62, 70, 46, 30, 86, 82, 20, 33, 39, 105, 44, 50, 123, 70, 94, 31, 19, 58, 70, 31, 25, 86, 82, 20, 33, 39, 105, 108, 50, 123, 70, 94, 31, 31, 13, 31, 13, 35, 34, 30, 86, 82, 20, 33, 39, 105, 108, 50, 123, 70, 94, 31, 62, 19, 70, 21, 21, 13, 82, 20, 33, 61, 86, 44, 108, 54, 114, 50, 109, 118, 118, 54, 39, 105, 44, 50, 50, 109, 118, 118, 22, 54, 108, 37, 33, 39, 105, 108, 50, 50, 109, 118, 118, 118, 54, 118, 37, 33, 61, 86, 44, 18, 50, 54, 109, 44, 44, 108, 118, 37, 33, 61, 86, 44, 108, 54, 54, 114, 45, 61, 86, 44, 108, 54, 18, 54, 45, 61, 86, 44, 108, 54, 18, 54, 45, 61, 86, 108, 114, 50, 50, 115, 45, 61, 86, 44, 108, 54, 50, 45, 54, 18, 36, 118, 22, 86, 18, 86, 18, 118, 22, 118, 22, 86, 18, 54, 18, 86, 18, 118, 22, 118, 22, 86, 18, 86, 18, 70, 22, 86, 18, 54, 61, 86, 108, 114, 50, 54, 45, 50, 82, 114, 118, 54, 50, 82, 114, 118, 118, 118, 101, 109, 118, 101, 109, 118, 101, 45, 101, 109, 86, 83, 108, 114, 50, 50, 101, 66, 61, 109, 118, 118, 22, 118, 54, 118, 22, 61, 86, 108, 114, 50, 50, 45, 111, 57, 61
edit: even de nieuwe code van Joop proberen.
[Voor 1% gewijzigd door hansdegit op 03-10-2012 11:34. Reden: d,t]
hans, hier kan ik wat mee....hansdegit schreef op dinsdag 02 oktober 2012 @ 21:51:
![]()
Ik krijg allerlei data uit de seriele poort. Allemaal getalletjes die we nog moeten parsen en interpreteren, maar bottom line: we have lift off.
Wat helemaal leuk is: de meter antwoordt ook als er 3.3v op de request lijn gezet wordt. Wat minder leuk is: hij antwoord niet meteen, maar in zijn eigen ritme.
Ja is makkelijk, morgen ochtend. Ik mag niet meer verder. :-)hansdegit schreef op dinsdag 02 oktober 2012 @ 21:56:
Jouw nieuwe code spuugt ook van alles uit. Is er een makkelijke manier om dat in de paste buffer te zetten?
Hans, we gebruiken straks een event handler, hoeven we niks aan te doen.
We vullen onze structure in de handler en wachten op een server request en geven de data door.
Zo eenvoudig kan het zijn.
Ik heb de prog code geschreven om de P1 te loggen naar een SD card.
Maar pas op, op die manier van wegschrijven zit je sd card in een paar uur vol.
Graag zou ik die bestandjes willen bekijken via www.mijnbestand.nl in zip of arj
[Voor 77% gewijzigd door Willie Wortel op 03-10-2012 08:25]

In het intermediate window van Visual Studio zie ik het volgende langs schieten per bericht:
1
| 47 73 83 107 53 92 50 77 84 51 56 50 45 49 48 48 51 13 10 13 10 48 45 48 58 57 54 46 49 46 49 40 53 65 52 50 52 53 53 54 51 48 51 48 51 53 51 51 51 51 41 45 46 56 48 53 48 104 49 45 46 56 46 50 40 48 48 53 55 50 57 42 107 87 104 41 13 10 49 45 48 56 48 49 56 104 41 45 46 40 49 57 53 104 48 57 52 46 48 13 48 55 46 48 48 52 87 49 50 48 48 48 42 13 48 46 40 57 42 13 48 46 48 40 13 10 48 45 48 58 57 54 46 49 51 46 49 40 41 13 10 48 57 51 41 45 49 51 41 50 49 48 48 51 49 48 48 48 48 48 41 40 48 48 41 40 54 48 41 40 49 41 40 48 45 49 58 50 52 46 50 46 49 41 40 109 51 41 13 10 40 48 48 48 56 55 46 51 48 50 41 13 10 48 45 49 58 50 52 46 52 46 48 40 49 41 13 10 33 13 10 |
De cijfers staan allemaal onder elkaar met een ENTER. Die heb ik hierboven weggehaald.
Via translate pagina gekeken wat de inhoud is:
1
2
3
4
5
6
7
8
9
10
11
12
| /ISk5\2MT382-1003 0-0:96.1.1(5A4245563030353333)-.8050h1-.8.2(005729*kWh) 1-08018h)-.(195h094.0 07.004W12000* 0.(9* 0.0( 0-0:96.13.1() 093)-13)21003100000)(00)(60)(1)(0-1:24.2.1)(m3) (00087.302) 0-1:24.4.0(1) ! |
We zijn op de goede weg echter er lijkt het een en ander te missen

Op de SD kaart staat een folder [06(Jun)-2011] en daarin staan bestanden met de naam in het volgende format [01-06(Jun)-2011-x] waarbij x staat voor volgnummer beginnend met 1. De inhoud van de bestanden is als volgt:
1
2
| Time of Logging : 06/01/2011 00:03:50 System.Byte[] |
Voor tijdsynchronisatie lijkt het mij zinvol om via een timeserver de tijd goed te zetten. Bij een herstart zal de Netduino weer beginnen op 1 juni 2011 0:00:00.
Ook lijkt het er op dat er iets van een buffer volloopt of zo, de Netduino wordt elke x seconden/minuten qua signaal losgegooid van de pc.
Dat klopt. Er wordt standaard elke 10 seconden gemeten en alleen verstuurd als de pin 2 hoog is.hansdegit schreef op dinsdag 02 oktober 2012 @ 21:51:
![]()
Ik krijg allerlei data uit de seriele poort. Allemaal getalletjes die we nog moeten parsen en interpreteren, maar bottom line: we have lift off.
Wat helemaal leuk is: de meter antwoordt ook als er 3.3v op de request lijn gezet wordt. Wat minder leuk is: hij antwoord niet meteen, maar in zijn eigen ritme.
Hmmm... Als je deze codes vertaald dan komt dit er dus uit:Output (komma's en spaties zijn van mij):
40, 27, 86, 10, 101, 89, 100, 82, 114, 22, 86, 86, 86, 31, 37, 62, 11, 13, 19, 35, 70, 94, 21, 125, 54, 46, 42, 21, 19, 25, 31, 25, 31, 25, 21, 25, 31, 25, 19, 25, 13, 25, 50, 50, 31, 25, 25, 25, 50, 90, 74, 86, 74, 31, 11, 70, 70, 94, 31, 31, 62, 70, 46, 30, 86, 82, 20, 33, 39, 105, 44, 50, 123, 70, 94, 31, 19, 58, 70, 31, 25, 86, 82, 20, 33, 39, 105, 108, 50, 123, 70, 94, 31, 31, 13, 31, 13, 35, 34, 30, 86, 82, 20, 33, 39, 105, 108, 50, 123, 70, 94, 31, 62, 19, 70, 21, 21, 13, 82, 20, 33, 61, 86, 44, 108, 54, 114, 50, 109, 118, 118, 54, 39, 105, 44, 50, 50, 109, 118, 118, 22, 54, 108, 37, 33, 39, 105, 108, 50, 50, 109, 118, 118, 118, 54, 118, 37, 33, 61, 86, 44, 18, 50, 54, 109, 44, 44, 108, 118, 37, 33, 61, 86, 44, 108, 54, 54, 114, 45, 61, 86, 44, 108, 54, 18, 54, 45, 61, 86, 44, 108, 54, 18, 54, 45, 61, 86, 108, 114, 50, 50, 115, 45, 61, 86, 44, 108, 54, 50, 45, 54, 18, 36, 118, 22, 86, 18, 86, 18, 118, 22, 118, 22, 86, 18, 54, 18, 86, 18, 118, 22, 118, 22, 86, 18, 86, 18, 70, 22, 86, 18, 54, 61, 86, 108, 114, 50, 54, 45, 50, 82, 114, 118, 54, 50, 82, 114, 118, 118, 118, 101, 109, 118, 101, 109, 118, 101, 45, 101, 109, 86, 83, 108, 114, 50, 50, 101, 66, 61, 109, 118, 118, 22, 118, 54, 118, 22, 61, 86, 108, 114, 50, 50, 45, 111, 57, 61
edit: even de nieuwe code van Joop proberen.
1
2
3
4
5
6
7
| (V eYdRrVVV%> #F^}6.* 222ZJVJFF^>F.VR!'i,2{F^:FVR!'il2{F^ #"VR!'il2{F^>F R!=V,l6r2mvv6'i,22mvv6l%!'il22mvvv6v%!=V,26m,,lv%!=V,l66r-=V,l66-=V,l66-=Vlr22s-=V,l62-6$vVVvvV6VvvVVFV6=Vlr26-2Rrv62Rrvvvemvemve-emVSlr22eB=mvvv6v=Vlr22-o9= |
Ik denk dat het te maken kan hebben met het invert gebeuren?
[Voor 68% gewijzigd door Gé Brander op 03-10-2012 11:21]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Mijn punt was dat het bericht van de meter niet op afroep beschikbaar is. Maar Joop zou dat in een soort van event gieten, dus dat gaat goedkomen.c70070540 schreef op woensdag 03 oktober 2012 @ 10:52:
[...]
Dat klopt. Er wordt standaard elke 10 seconden gemeten en alleen verstuurd als de pin 2 hoog is.
[...]
Hmmm... Als je deze codes vertaald dan komt dit er dus uit:
code:
1 2 3 4 5 6 7 (V eYdRrVVV%> #F^}6.* 222ZJVJFF^>F.VR!'i,2{F^:FVR!'il2{F^ #"VR!'il2{F^>F R!=V,l6r2mvv6'i,22mvv6l%!'il22mvvv6v%!=V,26m,,lv%!=V,l66r-=V,l66-=V,l66-=Vlr22s-=V,l62-6$vVVvvV6VvvVVFV6=Vlr26-2Rrv62Rrvvvemvemve-emVSlr22eB=mvvv6v=Vlr22-o9=
Ik denk dat het te maken kan hebben met het invert gebeuren?
Die bagger llijkt op iets wat nog even geinverteerd moet worden, inderdaad.
Ach, niet op afroep.... Binnen tien seconden na het vragen is toch wel redelijk op afroep?hansdegit schreef op woensdag 03 oktober 2012 @ 11:34:
[...]
Mijn punt was dat het bericht van de meter niet op afroep beschikbaar is. Maar Joop zou dat in een soort van event gieten, dus dat gaat goedkomen.

Ben benieuwd.Die bagger llijkt op iets wat nog even geinverteerd moet worden, inderdaad.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Dus de variabelen worden ververst iedere keer als de P1 poort gegevens verstuurd. Een en ander staat dus los van elkaar.
Daarnaast worden de gegevens ook verstuurbaar naar X, ... pvoutput, cosm of thingspeak of wat je maar wil.
Wat bedoel je met bestandje met binary gegevesn? Wil je een bestand dat op de SD kaart is weggeschreven of wat anders?JoopC schreef op woensdag 03 oktober 2012 @ 11:44:
Ik zit te wachten op een bestandje van jullie met de binary gegevens, uit het progje wat ik geschreven heb.
Ik kan niks testen, balen zeg.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
En discussie daarover is niet zo zinnig, want het is eigenlijk helemaal geen probleem; je moet er alleen bij het bevragen van de meter rekening mee houden.
Ik ga NU aan de gang voor je.JoopC schreef op woensdag 03 oktober 2012 @ 11:44:
Ik zit te wachten op een bestandje van jullie met de binary gegevens, uit het progje wat ik geschreven heb.
Ik kan niks testen, balen zeg.
[Voor 29% gewijzigd door hansdegit op 03-10-2012 11:47]
ja, alle bestandjes van de sd card als het kan. maar wel van de code die ik als laatste geschreven heb .c70070540 schreef op woensdag 03 oktober 2012 @ 11:45:
[...]
Wat bedoel je met bestandje met binary gegevesn? Wil je een bestand dat op de SD kaart is weggeschreven of wat anders?
Ze zitten op de post!JoopC schreef op woensdag 03 oktober 2012 @ 11:47:
[...]
ja, alle bestandjes van de sd card als het kan. maar wel van de code die ik als laatste geschreven heb .
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Nee Hans, het werkt toch echt anders. De Netduino wacht op de P1 en als deze verzend worden de gegevens afgehandeld. Daarna wacht de N+ opnieuw etc..... Dus de P1 moet altijd "aan" staan en zo is dat ook bedoeld. Dit heet Event afhandeling.hansdegit schreef op woensdag 03 oktober 2012 @ 11:46:
Precies zoals je zegt. Maar als je spanning op de poort zet kan het tussen de 0 en 10 seconden duren voor je antwoord van de meter krijgt. Dat bedoelde ik met 'niet op afroep'.
En discussie daarover is niet zo zinnig, want het is eigenlijk helemaal geen probleem; je moet er alleen bij het bevragen van de meter rekening mee houden.
[...]
Ik ga NU aan de gang voor je.
Inderdaad, zolang er spanning op de pin van de P1 poort staat worden de berichten verzonden met tussenposen van 10 seconden. De pin hoeft niet telkens uit en aan gezet te worden.JoopC schreef op woensdag 03 oktober 2012 @ 11:51:
[...]
Nee Hans, het werkt toch echt anders. De Netduino wacht op de P1 en als deze verzend worden de gegevens afgehandeld. Daarna wacht de N+ opnieuw etc..... Dus de P1 moet altijd "aan" staan en zo is dat ook bedoeld. Dit heet Event afhandeling.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Mijn ervaring van gisteravond is als volgt:
- zet spanning op de poort
-wacht tussen 0 en 10 seconden voor het eerste bericht
Zodra het eerste bericht binnen is, duurt het altijd 10 seconden voordat je je 2e bericht krijgt. etc.
De spanning is nooit van de poort afgeweest.
edit: maar die 1e vertraging tussen 0 en 10s kan ook het build proces geweest zijn. We gaan het zien.
[Voor 12% gewijzigd door hansdegit op 03-10-2012 12:00]
Dan zitten we op dezelfde golflengtehansdegit schreef op woensdag 03 oktober 2012 @ 11:58:
Wat is het toch fijn om zo lekker langs elkaar heen te ouwehoeren.
Mijn ervaring van gisteravond is als volgt:
- zet spanning op de poort
-wacht tussen 0 en 10 seconden voor het eerste bericht
Zodra het eerste bericht binnen is, duurt het altijd 10 seconden voordat je je 2e bericht krijgt. etc.
De spanning is nooit van de poort afgeweest.
edit: maar die 1e vertraging tussen 0 en 10s kan ook het build proces geweest zijn. We gaan het zien.

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
In ieder geval, de data verzending van de P1 gaat onregelmatig, er is geen constante van 10 secs.
Die pakken we er dan gewoon bijJoopC schreef op woensdag 03 oktober 2012 @ 12:04:
Het lijkt hier wel een werkmeeting alleen de koekjes ontbreken. :-)

Hier ben ik het niet mee eens. Mijn seriele poort op de pc die de data ook uitleest doet netjes elke 10 seconden een bestandje schrijven met inhoud. Daar zit in mijn beleving geen enkele inconsistentie in. Elke minuut 6 bestanden tot nu toe.In ieder geval, de data verzending van de P1 gaat onregelmatig, er is geen constante van 10 secs.

[Voor 104% gewijzigd door Gé Brander op 03-10-2012 12:15]
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
Kan er toch echt niks anders van maken hoor:c70070540 schreef op woensdag 03 oktober 2012 @ 12:06:
Hier ben ik het niet mee eens. Mijn seriele poort op de pc die de data ook uitleest doet netjes elke 10 seconden een bestandje schrijven met inhoud. Daar zit in mijn beleving geen enkele inconsistentie in. Elke minuut 6 bestanden tot nu toe.
[afbeelding]
Moet je maar eens de in de bestandjes kijken, naar de tijd.
Time of Logging : 06/01/2011 00:09:31
Time of Logging : 06/01/2011 00:09:34
Time of Logging : 06/01/2011 00:09:41
Time of Logging : 06/01/2011 00:09:43
Time of Logging : 06/01/2011 00:09:51
Time of Logging : 06/01/2011 00:09:53
Time of Logging : 06/01/2011 00:10:01
Time of Logging : 06/01/2011 00:10:04
Ok, maar dat zijn de Netduino bestanden. Misschien dat de Netduino af en toe wat tijd laat liggen voordat het geschreven wordt... Want op mijn pc komt het echt elke 10 seconden binnen.JoopC schreef op woensdag 03 oktober 2012 @ 12:28:
[...]
Kan er toch echt niks anders van maken hoor:
Moet je maar eens de in de bestandjes kijken, naar de tijd.
Time of Logging : 06/01/2011 00:09:31
Time of Logging : 06/01/2011 00:09:34
Time of Logging : 06/01/2011 00:09:41
Time of Logging : 06/01/2011 00:09:43
Time of Logging : 06/01/2011 00:09:51
Time of Logging : 06/01/2011 00:09:53
Time of Logging : 06/01/2011 00:10:01
Time of Logging : 06/01/2011 00:10:04
Als je goed naar de files hierboven kijkt zit er wel wat raars in: 31-34, 41-43, 51-53 en 01-04 seconden. Waarom elke keer 2-3 seconden ertussen en vervolgens 6-7 seconden.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!
6. Bugfixes: SerialPort.DataReceived event should now fire properly
7. Bugfixes: SerialPort.Read() timeout now implemented properly
solved...next case
[Voor 28% gewijzigd door Willie Wortel op 03-10-2012 13:42]
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
| Connecting to NetduinoPlus_NetduinoP1...Connected HalSystemInfo.halVersion: 4.2.0.0 HalSystemInfo.halVendorInfo: Netduino Plus (v4.2.0.1) by Secret Labs LLC HalSystemInfo.oemCode: 34 HalSystemInfo.modelCode: 177 HalSystemInfo.skuCode: 4097 HalSystemInfo.moduleSerialNumber: 00000000000000000000000000000000 HalSystemInfo.systemSerialNumber: 0000000000000000 ClrInfo.clrVersion: 4.2.0.0 ClrInfo.clrVendorInfo: Netduino Plus (v4.2.0.1) by Secret Labs LLC ClrInfo.targetFrameworkVersion: 4.2.0.0 SolutionReleaseInfo.solutionVersion: 4.2.0.0 SolutionReleaseInfo.solutionVendorInfo: Netduino Plus (v4.2.0.1) by Secret Labs LLC SoftwareVersion.BuildDate: Sep 19 2012 SoftwareVersion.CompilerVersion: 410894 FloatingPoint: True SourceLevelDebugging: True ThreadCreateEx: True LCD.Width: 0 LCD.Height: 0 LCD.BitsPerPixel: 0 AppDomains: True ExceptionFilters: True IncrementalDeployment: True SoftReboot: True Profiling: False ProfilingAllocations: False ProfilingCalls: False IsUnknown: False |
Afgelopen week nog ge-update.
Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!