Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Acties:
  • +1Henk 'm!

  • Gé Brander
  • Registratie: september 2001
  • Laatst online: 14:04
Mede-auteurs:
  • klump4u
  • Registratie: februari 2008
  • Niet online

klump4u

  • Willie Wortel
  • Registratie: maart 2012
  • Niet online

Willie Wortel

Topic wordt opgebouwd op dit moment. Als het klaar is zal deze tekst verwijderd worden.

Link naar de nieuwe website voor het downloaden van de software: http://ultimate-datalogging.nl/
Software is op dit moment alleen nog op verzoek verkrijgbaar. In dit stadium is brede verspreiding nog niet aan de orde.

In dit topic wordt de DaL software voor de Raspberry Pi besproken welke door @Willie Wortel is geschreven en geport naar de Raspberry Pi. Deze versie is gebouwd voor Windows IoT en zal andere mogelijkheden bevatten dan de vorige NetDuino versie. Zaken die over de NetDuino versie gaan graag bespreken in het betreffende topic en voor de Windows IoT op Raspberry Pi graag hier bespreken.



Een beknopte handleiding:

Installeer Visual studio 2017 community op je computer
https://www.visualstudio.com/downloads/
Installeer de SDK op je computer.
https://developer.microso.../downloads/windows-10-sdk

Installeer Windows 10 IoT Core op je Raspberry Pi2 of 3, dit kan met je IoT dashboard. https://developer.microsoft.com/en-us/windows/iot/downloads
Gebruik bij voorkeur een nieuwe 8 of 16 GB SD-kaart met class10, in het Win IoT Dasboard onder "Setup a new device" staan voorbeelden van ondersteunde SD-kaarten.
De eerste keer opstarten van de Raspberry met de nieuwe software kan even duren dus heb geduld.
Inloggen op je Raspberry via het IoT-dasboard: gebruikersnaam = minwinpc\Administrator en het wachtwoord wat je zelf hebt ingevuld tijdens installatie.

Download DaL-pakketje van de website. https://ultimate-datalogging.nl/
Uitpakken in een map b.v.: Dal 1.0.1
Je hebt nu 2 mappen te weten: Dal en Raspberry_Dal_Webpages.
In Dal staat de software die je via Visual Studio 2017 naar je raspberry moet deployen.
Klik op DaL op DaL.sln, als alles goed gaat start nu Visual studio op, dit duurt even.
Als alles geladen is (2 projecten) klik je links boven aan op Project en dan op Dal properties, vul bij Debug het IP-adres van je Raspberry in.
Zet je deploy op remote machine en ARM processor
Deploy de kale DaLsoftware d.m.v het groene driehoekje (midden bovenaan) naar je Raspberry, dit duurt even (in je immediate window zie je of het gelukt is)
Stop VS en start DaL op in je IoT dashboard in het tabblad Apps-Appsmanager.
Als alles goed is gegaan heb je nu een draaiende kale Dal.
Stop eventueel een USB-Stick geformateerd fat32 en naam DAL in je Raspberry Pi, dit voorkomt het vele schrijven naar je SD-kaart.
Verander nu in de map Raspberry_Dal_Webpages de RaspberryConfig (rechtermuisknop, openen met kladblok) je IP van de Raspberry en laat het poortnummer staan op 65444
code:
1
2
3
4
//Raspberry1
    RaspberryOnline[0] = "http://192.168.0.22";
    //Raspberry1 port
    RaspberryOnline[1] = 65444;

Even het bestand saven en sluiten.
Start de OPTIONS pagina in Dal 1.0.1/webpages/pages/OPTIONS.HTML
Stel de opties in via deze pagina(bovenaan staat een wikihelp) en save dit naar DaL op je Raspberry(wachtwoord is standaard "raspberry")
Start je Raspberry of Dal-software opnieuw op via de Windows Device portal.

Denk eraan dat je de Raspberry altijd uitzet in de Device Portal en nooit zo de spanning eraf halen, aanzetten is gewoon de spanning erop zetten.
Vragen kun je op dit forum :)





De topic start zal nog verder worden bijgewerkt gedurende de komende tijd. Hieronder staan vrijwel alle belangrijke posts uit het oude topic met betrekking tot de Raspberry Pi versie.

Bedankt voor jullie support zover!
quote:
klump4u schreef op vrijdag 12 mei 2017 @ 19:56:
[...]

Je bent dus met windows 10 bezig op de raspberry?
Ja DaL voor de Raspberry .... onder Windows 10 IOT...... (je maakt wat mee) ben ik mee bezig en al best ver mee. Er moet een nieuw draadje geopend worden zodat alle schema's, uitleg etc voorhanden zijn. De eerste versie, ....... ik moet eerst wachten tot ik de bestelde artikelen binnen heb zodat ik kan testen.

Laden van en wegschijven direct op een USB geheugen, extern device.
quote:
junr schreef op woensdag 17 mei 2017 @ 13:38:

Maar geef de moed niet op Willie😉
[raspberry3]

Ik geef de moed niet op hoor.

Hier de programma code overgezet van Netduino naar Raspberry voor de sainsmart display. Rechts zie je de aangesloten raspberry 3 met een groot display op zijn kop liggen.
We proberen alles zo eenvoudig mogelijk te maken.



Alle timings zijn opnieuw uitgerekend, de Netduino heeft een andere verwerking snelheid.

[raspberry 3]

De Bosch BME280 temperatuur, luchtdruk en luchtvochtigheid sensor wordt in de Raspberry geprogrammeerd, in plaats van de DHT22. De Bosch is super accuraat moet ik zeggen. Zo heb je met 1 sensor een compleet setje.

Ik zal deze sensor (als ik tijd heb) in de Neduino programma code ook nog meenemen.

https://www.bosch-sensort...ducts/all_products/bme280


InDepth waarom?

De raspberry 3 Windows 10 IoT kent geen gebufferde interrups (Queue) met de GPIO pins methode "ValueChanged" en geeft ook geen time argument mee waardoor je niet weet wanneer de "ValueChanged" is getriggerd. Hierdoor wordt het programmeren in C# of VB van sensoren als de DHT22 onmogelijk. De Netduino met netMF heeft dit alles wel aan boord.

[raspberry 3]

De oneWire DS18B20 temperatuur sensor in combinatie met een DS2482-100 I2C zit in de DaL Raspberry software geprogrammeerd.

software aanroep:
Visual Basic:
1
2
3
4
5
6
7
8
Dim devices = oneWireDeviceHandler.OneWireDevices.GetDevices(Of Temperature.DS18B20.DS2482_100.IoT.OneWire.DS18B20)()

For Each oneWireItem In devices

      Debug.WriteLine(oneWireItem.GetTemperature())
      Debug.WriteLine(oneWireItem.OneWireAddressString)

Next

De software wordt uiteraard bestuurd met de opstartstring uit de OPTIONS pagina en werkt identiek als de Netduino.

De library van de arduino is overgezet en ook delen van Rinsen (die ook de arduino lib heeft overgezet)
https://github.com/cyberg...e/blob/master/OneWire.cpp
https://github.com/Rinsen/OneWire

quote:
klump4u schreef op dinsdag 30 mei 2017 @ 14:06:
Je maakt het wel spannend Willie.
Ik ga maar eens sparen voor een pi3
[Raspberry 3]

Duurt nog wel zo een 2 maanden voordat de eerste versie voor de Raspberry 3 klaar is.
Kan wel tussentijds, indien gewenst, en testversie online zetten.

De windows 10 IoT is een jong besturingssysteem waardoor nog niet alle drivers voor sensors etc beschikbaar zijn zoals PWM voor de servo en OneWire voor de GPIO pins. Er moesten dus workarounds gehatseflatst worden.

Ik heb van de week de 2482-100 bridge voor de ds18b20 over I2C op een SO8 micro breakout boardje gesoldeerd, ondanks dat het miniatuur is en ik 3 brillen tegelijk moest gebruiken ging dat voorspoedig.

Volgende week eens testen hoe al dat I2C geweld met elkaar werkt, zoals de ds18b20 x5 + sainsmart display + luchtdruk sensor. Blijft het soepel lopen?, zit een en ander met elkaar in de weg? etc?

De slimme meter uitlezen icm de UART RX op de Raspberry werkt overigens uitstekend.

Voor DaL voor de Raspberry heb je Visual Studio (Community) 2017 nodig op je computer.
https://www.visualstudio.com/downloads/

DaL voor de Raspberry is trouwens een idee van Gé Brander en de hardware is ook door hem beschikbaar gesteld.

[raspberry 3]

@Cranberry ik vermoed dat de Windows 10 IoT ook op een Raspberry 2. draait, de DaL software is op win 10 iot gebaseerd. Als het er niet op werkt weet ik het ook niet, ik heb geen Raspberry 2.

@junr De P1 loggen kan, de display werkt ook, voor de ds18b20 heb je de eerder beschreven hardware nodig maar dat is maar een paar euro. ADD: de pulsemeter werkt ook, sterker nog, haast alle oude sensoren werken.

Wat je verder nodig hebt is een extern USB stick geheugen (hoe noem je zo een ding), daar gaat de opstart string op en wordt de data naar toe gelogd. In welk slot de USB zit maakt niet uit.

De software zal kijken of er een USB aanwezig is met het volume naam "DAL" of "DaL_startupString.txt"
Visual Basic:
1
2
3
4
5
6
7
Public Const DEFAULT_USB_VOLUME_NAME As String = "DaL"

Public Const CONFIGURATION_FILE As String = "DaL_startupString.txt"
    

Public Const MEMORY_FILE As String = "DaL_Memoryfile.txt"
Public Const DEFINITIONS_HISTORY As String = "DaL_Definitions.txt"

Is er geen USB of geen DAL volumenaam of geen opstart string aanwezig dan wordt de USB lezen schrijven uitgezet.

waarom extentie .txt ? omdat alle extenties in het pakket manifest moet worden aangemeld en de txt bestandjes kunnen met 1 klik worden geopend met wordpad.


[raspberry 3]
Voor het deployen van DaL moeten een paar instellingen worden veranderd aan het programma.


Selecteer TAB Project/DaL properties:
Tab DEBUG.


Als de instellingen niet zo staan selecteer dan target: REMOTE MACHINE en vul het IP adres in van je Raspberry.

Het IP adres haal je uit het IoT dashboard.


Het IP adres kan je veranderen door rechtermuis en optie OPen in Device Portal.


Je kan ook in je router een static adres aanmaken icm het MAC adres van je raspberry. (dit heb ik gedaan)

Het invoeren van de IP adres etc invoer in de Dal Options.html pagina is komen te vervallen. Hiervoor is het Windows 10 IoT dashboard in de plaats gekomen.




reset van de raspberry is ook ondersteund, dit was wel even uitvogelen how to.
Visual Basic:
1
Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(10))

EN NU HET BELANGRIJKSTE:

Ga in het begin niet alles tegelijk aanzetten in de Options pagina. Begin sensor voor sensor. Zo kan je heel snel zien of er wat fout gaat en waar het fout gaat. Als alles tegelijk is gekozen dan is het zoeken naar een naald in een hooiberg.

Dus eerst de P1, testen. Dan x erbij, testen. etc....

Het overzenden van de opstart String naar de Raspberry werkt goed maar mijn voorkeur in het begin is hardcoded.

[raspbery 3]

De raspberry kent maar 1 UART, deze staat dus ook gelinkt met de P1

Later kunnen er externe UARTS toegevoegd worden.

De GPIO (General Purpose Input Output) die geselecteerd kunnen worden in de PulseMeters:


zijn gelijk aan deze:



Dus GPIO 25 = dPin 25 De UART0 = is de UART RX pin op de Raspberry

de P1 routine is totaal nieuw, hier een stukje:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 Private Async Sub readOutP1port()

        Dim aqs = SerialDevice.GetDeviceSelector(DaL.P1config.commPort)
        Dim allCOMMDevices As DeviceInformationCollection = Await DeviceInformation.FindAllAsync(aqs)

        _serialDevice = Await SerialDevice.FromIdAsync(allCOMMDevices(0).Id)

        _serialDevice.ReadTimeout = TimeSpan.FromMilliseconds(1000)
        _serialDevice.BaudRate = DaL.P1config.Baudrate
        _serialDevice.Parity = DirectCast(DaL.P1config.parity, SerialParity)
        _serialDevice.StopBits = DirectCast(DaL.P1config.stopBits, SerialStopBitCount)
        _serialDevice.DataBits = CUShort(DaL.P1config.dataBits)
        _serialDevice.Handshake = SerialHandshake.None


        Dim dataReaderObject = New DataReader(_serialDevice.InputStream) With {
            .InputStreamOptions = InputStreamOptions.None
        }

        Do While True

Het loggen naar de data providers UbiDots, PVOutput, ThingSpeak, GroveStreams, MinderGas en naar de sd kaart is vernieuwd en output is gelijk gebleven. De sdCard is uiteraard de USB stick geheugen uit mijn vorige uitleg.


En last but not least, er is een nieuw module GlobalFeatures:
quote:
klump4u schreef op maandag 5 juni 2017 @ 20:51:
De aansluitschema's van de P1 en S0 zijn hetzelfde gebleven met de weerstanden e.d.?
Er mag op de Raspberry alleen maar 3,3v worden gebruikt volgens mij.
[raspberry]
Ja, de aansluitschema's zijn dezelfde. Het verschil zit in het lezen bijvoorbeeld dPIN 3 = GPIO 3, dus lees voor dPIN GPIO. In de selectie dropdown is alles aangepast, je kan dus niet selecteren wat er niet is.

zoek maar pin 14, 15 .... :)


Nu kan ik dat wel in de options pagina veranderen maar dan moeten alle schema's aangepast worden, dat is een karwei.

------
De 5v,..... ik weet dat niet, ik zit hier alles aan te sluiten op de 5v uitgangen. De Sainsmart display werkt niet op 3.3v

https://www.sainsmart.com...-arduino-uno-mega-r3.html


------
Het beste is een nieuw draadje te openen voor dit projectje, een draadje wat de lading dekt, zoiets als " Log It Easy met DaL op de Raspberry. " :) ...... verzin maar.
quote:
klump4u schreef op dinsdag 6 juni 2017 @ 08:16:
Ik zeg het verkeerd, volgens mij mag er niet meer dan 3,3v op de gpio ingangen komen.
Goed dat je het opmerkt Klump.

Zou zomaar kunnen dat de GPIO input niet 5 volt tolerant zijn. Tot nu toe werkt alle geteste sensoren en de raspberry zoals het hoort. Geen vreemde dingen ontdekt.

Van de week sluit ik alle sensoren tegelijk aan tot een orkest zeg maar.

Zolang Microsoft geen native code voor de ds18b20 levert, zijn we tot de ds2482 veroordeeld:



Nu moeten er nog 2 zaken aangepakt worden en dan is alles overgezet.

1- de LDR resistor, omdat de raspberry geen ADC analog naar digitaal converter heeft moet dit gedaan worden door de ads1115, ik moet deze code nog overzetten.

2.- de sevensegments moet nog aangepakt worden.


------------------

aan het begin van de DAL programma code staat een klein hulp programmatje die kan helpen om je ds18b20 temperatuur sensoren te tunen.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'here your I2C_address 0x18 or 0x19 or 0x1A or 0x1B      replace 0x for &H 
Dim I2C_address As Byte = &H18

Dim oneWireDeviceHandler As OneWireDeviceHandler = New OneWireDeviceHandler(I2C_address)

Dim _collection = oneWireDeviceHandler.GetDevices(Of DS18B20)()

Do While True

   For Each oneWireSensor In _collection

      oneWireSensor.ReadTemperatureFromScratchpad()
      Debug.WriteLine(oneWireSensor.Celcius)
      Debug.WriteLine(oneWireSensor.OneWireAddressString)
      Debug.WriteLine(oneWireSensor.ID)
   Next

   Task.Delay(3000).Wait()
Loop

Ik krijg de seven segments display zo 123 niet aan de praat op de Raspberry. Er licht zelfs niet eens een pixel op.


heb de code onder handen genomen, nu werkt ook de seven segments met een Raspberry.

Hier het testlab in beeld:


Hier als voorbeeld met 2x ds18b20 temperatuur sensoren.

aansluitschema:


Het 7 segment kan door gelust (cascade) worden tot 8 modules.

te koop op ebay.:
http://www.ebay.com/sch/i...+display+arduino&_sacat=0

In de Options pagina aangepast, er zijn 2 SPI bussen aanwezig op de Raspberry, dus je kan maximaal 16 modules van de 7 segments in cascade door lussen:



Kijk, ook de clock frequenties zijn op een Raspberry anders, heel wat uitzoekwerk:
Visual Basic:
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
Private Async Function setDevice() As Task

        Try

            '// Set clock to 10MHz 
            Dim settings = New SpiConnectionSettings(0) With {
                .ClockFrequency = 164000, ' 10000000 '164000 '  300000 '  1000000   '164000
                .Mode = SpiMode.Mode0,
                .SharingMode = SpiSharingMode.Shared
            }

            '// Get a selector string that will return our wanted SPI controller
            Dim aqs As String = SpiDevice.GetDeviceSelector(_SPIbus)

            '// Find the SPI bus controller devices with our selector string
            Dim dis = Await DeviceInformation.FindAllAsync(aqs)

            _device = Await SpiDevice.FromIdAsync(dis(0).Id, settings)

        Catch ex As Exception
            DaL.exeptions.storeExeption("trouble with SPI device", ex)

        End Try

    End Function

Nieuw in DaL voor de Raspberry (dus niet voor de Netduino)

De Bosch BME280 Luchtdruk, Temperatuur en luchtvochtigheid sensor.



Pas Op, BME280 en BMP280.....zitten beide in DaL voor de raspberry,.... het is maar 1 lettertje maar andere sensoren. Je moet natuurlijk voor de BME280 gaan, daar zit ook een luchtvochtigheid uitlees in.

de pulldown menu's


en in livedata:


Wat niet terug komt in DaL voor Raspberry:

de display met buttons.
de display van Digole.
de grafische display van Digole.

Dus alleen de sainsmart display over I2C blijft ondersteund.
quote:
klump4u schreef op vrijdag 9 juni 2017 @ 12:29:
@Willie Wortel
Moet het een echte sainsmart display zijn of werken de 20x4 met I2C ook? (of gewoon proberen natuurlijk)
2 dagen gekloot om Windows 10 ioT op een Pi2 te krijgen, soms lukte het en vaker niet.
Er moet blijkbaar een goede SD-kaart in anders werkt het voor geen meter bij mij.
Ga maar eens kijken voor een goed kaartje.
Klump, met welk display werk je nu dan mee.?

Sainsmart heeft een bepaalt protocol wat onze software aanroept/gebruikt. Ik weet niet of een ander display daar ook mee werkt, dat is te proberen. Kijk de diepe gedachte is om de raspberry eigen pagina's te laten hosten en de data direct vanaf de usb in te lezen. Zo krijg je een mini pvoutput. :) Maar dat kost ook geheugen......dus ballast verwijderen om teleurstelling te voorkomen.

De sd kaart,... ja ik weet het niet, ik heb de IoT er opgezet niet meer aangekomen, het draait goed moet ik zeggen. Ik werk wel met een raspberry 3 wifi, werkt ook super moet ik zeggen.
quote:
klump4u schreef op vrijdag 9 juni 2017 @ 12:52:
Ik heb nu de button lcd op een Netduino en op de andere een 20x4 van Ebay.
Ik denk dat ik binnenkort een Rp3 ga bestellen dan is me misschien een hoop ellende al bespaard.
Als ik er een heb laat ik je het wel weten.
Wifi zit al op de Rp3 geloof ik.
Als ik het goed heb dan werk ik met deze:
https://www.sossolutions....OaW6q_NsNQCFcoaGwod8BgJoQ

Er is een dropdown menu in de pulsemeter menu:


Het standaard password = "raspberry"

het standaard port nummer = 65444



TESTING.......de nieuwe NOW op de raspberry:



je ziet hier 2 ds18b20 temperatuur sensoren met de BME280 over I2C

in livedata:


Nu moet (voorlopig) nog de LDR erin geprogrammeerd worden en dan kan DaL voor de Raspberry getest worden.

Je kan dus ook alle tekst aanduiding in de source code naar believen veranderen : oa in de JSON builder.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
'dit niet veranderen
Case "BME280sensor"

   For p As Integer = 0 To DaL.BME280sensors.Length - 1

      'de rode tekst mag veranderd worden.
      z &= (If(p = 0, """bme280sensor"":[", ",") & "{ ""ID"":""" & DaL.BME280sensors(p).ID & """" &
                             ",""temperature"":" & DaL.BME280sensors(p).Celcius.ToString("F1") &
                             ",""airPressure"":" & DaL.BME280sensors(p).Airpressure.ToString("F1") &
                             ",""Humidity"":" & DaL.BME280sensors(p).Humidity.ToString("F1") &
                             ",""Dewpoint"":" & DaL.BME280sensors(p).DewPoint.ToString("F1") & "}")
   Next

Het is best wel veel werk want ook alle web pagina's moesten aangepast worden, één lettertje verkeerd en de boel loopt vast.

Ik heb veel tijd verloren waarom de MAX7219 in cascade wel werkt op een Netduino en waarom niet op een Raspberry.

Maar hij werkt het nu ook in cascade op een raspberry. ppffffff

in combinatie met de ds18b20 temp sensoren en de BME280 luchtdruk.


voor geïnteresseerden:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub Write(register As Byte, value As Byte, Optional ByVal cascadeDevice As Integer = 0)

        Dim WriteRegister() As Byte = New Byte(1 + (cascadeDevice * 2)) {}

        WriteRegister(0) = register
        WriteRegister(1) = value

        For t As Integer = 1 To (cascadeDevice * 2) Step 1
            WriteRegister(t + 1) = &H0
        Next

        _device.Write(WriteRegister)

        Task.Delay(2).Wait()
        _device.Write(New Byte() {&H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0})

    End Sub

Om wat tijd te winnen zal ik de rest even laten voor wat het is een pakketje samenstellen voor de testers, dat drop ik in je PM postbakje.

Tweakers, even op herhaling:, hier haal je webpagina's de IP en Port nummer vandaan.
RaspberryConfig.js


Bij problemen, door in de solution explorer menu op "DAL (universal windows)" rechtermuistoets, kan je het project "clean" en "rebuild" te klikken.



misschien heb je de NUGET manager nodig want NetCore MOET geïnstalleerd zijn.


Het klinkt allemaal wat overweldigend maar is het niet.
Veel plezier ermee.

De link naar de testversie is niet openbaar omdat we het groepje testers niet te groot willen hebben. Na die test fase wordt de source code van DaL voor de raspberry gewoon op Tweakers of zo (Gé ? ) geplaatst.
quote:
klump4u schreef op zondag 11 juni 2017 @ 09:57:
@Willie Wortel
Kan ik de visual 2017 ook nog gebruiken voor de netduino?
kan ik alle oude van de pc verwijderen en dan alleen 2017 erop zetten
Nee, voor de Netduino zit je vast aan de versie VS 2013.

Je kan de verschillende Visual Studio versies naast elkaar gebruiken op 1 pc.

klump4u wijzigde deze reactie 30-07-2017 18:17 (229%)
Reden: Handleiding toegevoegd

In Forza 6 and Forza Horizon 3: The Racer Also Known As Aad1970 - http://dalue.codeplex.com - http://www.brander.site


Acties:
  • 0Henk 'm!

  • Gé Brander
  • Registratie: september 2001
  • Laatst online: 14:04
2018-04-11 - Het is tijd voor een nieuwe versie van DaL, versie NG.

Er zijn 2 opties voor het installeren van DaL NG op de Raspberry:
1- via de source code (wat ik alleen zou doen als ik wat te programmeren had)
2- met het bijgeleverde package installer. Howto?:

start je Raspberry met WIndows 10 IOT (Internet Of Things) OPEN je DASHBOARD.
ga naar APPS\APP MANAGER klik o ADD


Dan zie je dit:


ga naar de map ..\DaL_JSON_Executable\DaL_2.0.0.0 en klik op je apppxbundle

NB: ALS je al een DaL hebt geïnstalleerd, De-installeer deze versie voordat je een nieuwe installeer.

DaL kan je programmeren vanuit de OPTIONS webpagina en staat in je DaL webpagina's map:
..\DaL_NG\Raspberry_DaL_WEBpages\DALwebpages\Pages\OPTIONS.html
Met de WiKi in dezelfde map kan je kennis opdoen.

Deze versie van DaL NG is met zorg geschreven en degradeert alle andere logging software tot kinderspeelgoed maar zorg indien je met een vorige versie van DaL werkt dat je van alles een backup hebt zodat je altijd naar de vorige versie terug kan.

@Willie Wortel weer hartelijk dank voor het mooie programmeerwerk! De website is bijgewerkt met de nieuwe download.

Gé Brander wijzigde deze reactie 11-04-2018 10:29 (197%)

In Forza 6 and Forza Horizon 3: The Racer Also Known As Aad1970 - http://dalue.codeplex.com - http://www.brander.site


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Nou hier lukt het nog niet zo.
Ik heb de 10.0.150630 windows10 IoT core draaien op de Raspberry Pi 2.
Ben nu met Visual community 2017 aan het stoeien maar krijg deze meldingen
code:
1
2
3
4
5
1>------ Build started: Project: DaL, Configuration: Debug ARM ------
1>D:\DAL-Pi\DaL_raspberry_Versie_0001\DaL_TEST_Raspberry\DaL\DaL\DaL.vbproj : XamlCompiler error WMC1006: Cannot resolve Assembly or Windows Metadata file 'System.Runtime.dll'
1>C:\Program Files\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\WindowsXaml\v15.0\8.2\Microsoft.Windows.UI.Xaml.Common.targets(266,5): Xaml Internal Error error WMC9999: Type universe cannot resolve assembly: System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========





Komt dat omdat ik een hogere core versie heb?

klump4u wijzigde deze reactie 11-06-2017 19:32 (7%)

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • 0Henk 'm!
Dit is een leuk installatie leer moment. Heb ik ook gehad de eerste keer toen ik begon met de raspberry programmeren.

Klump aan je errors te zien heb je Windows Universal Platform SDK niet geïnstalleerd.



Kijk eens bij referenties.

Je zal in je source code bijna overal rode golflijntjes zien. Kijk in je NuGet manager (had ik uitgelegd)

Het probleem is dat ik geen computer meer heb waar VS2017 + SDK nog niet op geïnstalleerd is. Het is dus zoeken/raden wat je zoal nodig hebt.

Ik heb geloof ik ook deze SDK handmatig ingeladen. (niet automatisch met VS 2017)?
https://developer.microso.../downloads/windows-10-sdk


En in de solution manager rechtermuis, "clean" en "rebuild"

Willie Wortel wijzigde deze reactie 11-06-2017 21:07 (27%)


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Deze is geinstalleerd volgens mij.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

@klump4u
Ik denk dat als je de SDK geinstalleerd hebt en daarna een schone zip die je gedownload hebt gebruikt, alle problemen voorbij zijn. Visual Studio heeft in je huidige broncode veranderingen aangebracht en verwijzingen die er niet waren verwijderd. (clean).

Zo niet dan:
Dit heb je:


Dit moet je doen:


UniversalWindows/Extentions vink IoT extention voor UWP (Universal Windows),


Dat er bij mij meer IoT libs geinstalleerd zijn komt omdat na een VS update de oude libs behouden blijven.

daarna Clean, rebuild.

Acties:
  • +1Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Update,
Ik krijg de software naar de Pi2 geschreven dankzij jullie tips.
Mijn pi2 draait met core versie 10.0.15063
Als ik in de webpagina van de Apps manager kijk zie ik het volgende.



Start ik deze via de pagina dan loopt hij heel even en stopt dan weer vanzelf.

Ik kom ook niet op de webpagina.



Edit,
Dit krijg 10 seconden in visual 2017 nadat hij naar de pi is geschreven.

klump4u wijzigde deze reactie 12-06-2017 10:42 (16%)

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

@klump4u waarom de app stopt weet ik niet, zie ik nu ook voor het eerst. Eerder bleef de app gewoon doorlopen. Zal ik moeten onderzoeken. Ook als ik de app als startup instel, dan start de app iedere keer opnieuw op, dat is ook weer nieuw voor mij, deed de app eerder ook niet. Een fout in de software heb ik niet kunnen ontdekken, in de debug mode aan de VS loopt de app gewoon netjes door. Kom ik op terug.


Ik heb het al gevonden hoor, heb helaas alleen geen tijd meer om vandaag met een nieuwe versie te komen.

Willie Wortel wijzigde deze reactie 12-06-2017 14:53 (18%)


  • Cranberry
  • Registratie: juni 2004
  • Laatst online: 14:20
'k Heb DaL gedeployed naar de RPi. DaL is nog niet geconfigureerd. Het valt me op dat de RPi regelmatig zichzelf herstart.

Helaas heb ik de komende dagen een dusdanig volle agenda, dat ik niet toekom aan het verder testen.
Ik wacht even op de volgende release, waarin de bug dat DaL zelf regelmatig stopt, is opgelost.


Bij het samenstellen van de configuratiestring dmv de webpagina's, ontbreken bij PVOutput de content pulsemeter("x").kwh en pulsemeter("x").watts

De webpagina geeft een waarschuwing van een pin conflict, terwijl er wel degelijke verschillende dpins zijn gebruikt.

Cranberry wijzigde deze reactie 13-06-2017 12:41 (34%)

@Cranberry dit moet nog aangepast worden, DaL bestaat uit 150.000 regels programma code. De conflict melding is maar een hulpmiddel en niet meer dan dat.

EDIT: ik heb het gezien, later aanpassen.


Je kan de testversie gewoon draaien met de debugger ingeschakeld in VS.

ik heb eerst de zoveelste bug in de core software van Windows IOT moeten slechten:
https://stackoverflow.com...s-in-windows-iot-core-app

Het probleem doet zich voor bij een headless app (achtergrond app en dat is DaL) .
Heb er een helper solution (hulp progje) voor geschreven, de nieuwe code is klaar, volgende week verder.

Willie Wortel wijzigde deze reactie 13-06-2017 14:39 (25%)

@Cranberry goed opgemerkt, is aangepast.

quote:
klump4u schreef op dinsdag 13 juni 2017 @ 17:05:
[...]

Dit ontbreek in alle schermen ( lcd, sd-kaart, builder en alle externe data-opslag)
Klump, gerepareerd. Nog meer?



Ik zal de volgende versie naar je uploaden.
quote:
klump4u schreef op dinsdag 13 juni 2017 @ 21:21:
[...]

Bij de sain smart in de options pagina kun je nog steeds de com1 t/m com4 selecteren, klopt dit?
En schrijven naar de sd- kaart is dit nu standaard een USB-stick genaamd DAL?
Ja maar dat wordt toch genegeerd, wordt niks mee gedaan. Sainsmart werkt met I2C
Voor de displays komen nieuwe menu's voor displays van deze tijd zeg maar. Maar het oude menu is ook nog functioneel.

Ja, schrijven is naar een USB stick, het slot maakt niet uit, Dal zoekt naar een stick met de volume naam "DAL" of bestand "DAL_startupString.txt" . De naam is niet hoofdletter gevoelig.

aangepast:



Ik heb net het lezen en schrijven uitgetest. Alles werkt maar jullie kennende zal ik wel weer wat over het hoofd zien. :)

Starten en stoppen van de app met het IoT dashboard werkt ook als een tierelier.

Willie Wortel wijzigde deze reactie 14-06-2017 08:03 (8%)

De nieuwe test versie is gereed.

HowTo:

We hebben het geprobeerd zo eenvoudig mogelijk te maken.

Hier staat nu de totale source code van DaL.


omdat er 2 projecten aanwezig zijn is het mogelijk ook de DaL_Helper te selecteren. Je moet gewoon DaL project selecteren, het andere project doet niets en heeft alleen verwijzingen om USB bestanden te bewerken.


Als je het DaL project op je Raspberry hebt gezet kan je, als een USB stick aanwezig is, een opstart string naar je Raspberry uploaden. Daarna reset Of nog beter in je Windows IoT dashboard DaL stoppen en daarna weer opstarten. Thats it.

Dus IoT dashboard, start portal:


In Windows Portal :


stop start



besturingssysteem + versie nummer raspberry

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Case 3

   'version family and version number raspberry  ( Windows IoT x.xx.xxx.xxxx )  

   Try
      Dim sv As String = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamilyVersion

      Dim v As ULong = ULong.Parse(sv)
      Dim v1 As Long = (v And &HFFFF000000000000L) >> 48
      Dim v2 As Long = (v And &HFFFF00000000L) >> 32
      Dim v3 As Long = (v And &HFFFF0000L) >> 16
      Dim v4 As Long = v And &HFFFFL

      Return String.Format("{0} : {1}.{2}.{3}.{4}", Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily, v1, v2, v3, v4)   
   
   Catch ex As Exception

      Return ""

   End Try
'

verstreken tijd DaL programma, niet de raspberry zelf. In Dagen, Uren, Minuten, Seconden
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Case 5

    'elapsed time DaL (days.hours.minutes.seconds)

    Const SECONDS = TimeSpan.TicksPerSecond
    Const MINUTES = 600000000
    Const HOURS = 36000000000
    Const DAYS = 864000000000

    Dim elapsed = Date.Now.Ticks - DaL.RaspBerryConfig.startTime

    Dim elapsedDays = elapsed \ DAYS
    Dim rest = elapsed Mod DAYS
    Dim elapsedHours = rest \ HOURS
    rest = rest Mod HOURS
    Dim elapsedMinutes = rest \ MINUTES
    rest = rest Mod MINUTES
    Dim elapsedSeconds = rest \ SECONDS

   Return String.Format("upTime: {0}.{1}.{2}.{3}", elapsedDays, elapsedHours, elapsedMinutes, elapsedSeconds)'

Willie Wortel wijzigde deze reactie 15-06-2017 21:20 (41%)

Verwijderen DaL app:

In de App manager van de Windows Device Portal:

Een Raspberry heeft geen ADC Analog to Digital Converter aan board. Dit moet gedaan worden met een ADS1115 converter.

In DaL is dus ook de tab LDR Light Dependend resistor verplaatst naar de ADS1115 tab.
Ook is de invoer aangepast met pulldown menu's om fouten te voorkomen.





Extreem data loggen hoeft niet moeilijk te zijn, het moet allemaal simpel blijven net als het leven.

Als de handleiding aan de beurt is zal alles uitgebreid uitgelegd worden.
Er is extra info toegevoegd in NOW:

Waar vanaf de startupString is ingeladen, USB device of hardcoded source code en aanmaak date time.

De DaL software version nummer wordt nu uit het manifest geladen.
Visual Basic:
1
2
3
4
5
Public Function ManifestVersion() As String
        Dim version As PackageVersion = Package.Current.Id.Version

        Return String.Format("{0}.{1}.{2}", version.Major, version.Minor, version.Build)
    End Function



Bij de volgende testversie is de opstart string niet compatible met de 0.0.2 versie. Dit omdat ook de string voor de toekomst is gereedgemaakt. Met de nieuwe versie is bij iedere update de opstart string downwards compatible. Dus nooit meer overtikken.....nou hoe vind je dat... :)
De LED getest over een GPIO pin en werkt naar behoren.



Je mag wel even in de keuken kijken,......let op het gele LED-je op het linker breadboard.


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Display aangesloten 20x4 van Ebay.
Dit scherm wordt 7 seconden weergegeven zoals aangegeven in de optionspagina



Dit scherm wordt 20 seconden weergegeven. Kan ik niet instellen.



Dit scherm wordt 4 seconden weergegeven. Kan ik niet instellen en er staat teveel info op 1 regel zodat het door elkaar wordt weergegeven.
Misschien veranderen in Core En Dal-V

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

@klump4u

Er staat idd 20 seconden wachten, is veranderd in 4 seconden.

Er wordt idd teveel info naar de display gestuurd. Zal het aanpassen.

Ben toevallig met de display bezig.


Klump, wat is je indruk van de Raspberry in combinatie met DaL tot nu toe?


------------
INFO over de 7 segments display.
Als je deze besteld, de groene !
http://www.ebay.com/itm/M...m:merp-KyWH7MaBm6y4bd88GQ

dan is het mogelijk om de display modules van het printje te halen en modules met een andere kleur erin te prikken.
Zoals bij mijn test boardje. Dit zijn 2 seven segments in cascade aan elkaar gekoppeld.

https://tweakers.net/ext/f/K5C8y3jV0fy08cjkmvDLl72u/full.jpg

Willie Wortel wijzigde deze reactie 16-06-2017 21:46 (38%)


Acties:
  • +1Henk 'm!
@klump4u

Als je de startup button van DaL in Windows IoT Device Portal aanvinkt dan zal DaL automatisch opstarten na stroomuitval.




---------------------------------
Met pijn in mijn hart moet ik voorzichtig toegeven dat DaL op de Raspberry soepel loopt en (wellicht) betrouwbaarder is dan DaL op een Netduino.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Vandaag de P1 aangesloten, het signaal wordt nu gesplits naar 3 devices (Netduino,Domoticz en Dal-Raspberry) gaat goed.
Wel een rommeltje in het meterkastje maar dat komt wel goed t.z.t.







Ik heb ook maar even de builder getest, 2 S0 meters samengevoegd naar 1 totaal systeem.



@Willie Wortel
Zou je voor de functie Mindergas deze code,
Visual Basic:
1
Dim jsonToSend As String = "{""date"":""" & DateTime.Now.ToString("yyyy-MM-dd") & """,""reading"":""" & functions.GetContent(minderGas.content, "F3").ToString("F3") & """}"

willen veranderen naar dit?
Visual Basic:
1
Dim jsonToSend As String = "{""date"":""" & DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") & """,""reading"":""" & functions.GetContent(minderGas.content, "F3").ToString("F3") & """}"

Dit moet ik normaal iedere keer veranderen in een nieuwe versie en zorgt ervoor dat de gasstand van de dag ervoor juist wordt geplaats op mindergas, en dan hoeft daar ook geen timefilter meer voor worden gebruikt.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

@klump4u
Ziet er mooi uit zeg, je bent al ver met aansluiten.
Je maakt het echt af met seven segments display modules, gebouwd in een apart kastje en 5 draadjes naar je Raspberry. Voor in de wintermaanden. :)



De mindergas aanpassing zit erin geprogrammeerd.

---------------------
Bij mij is het probleem dat ik alle aansluitingen bij mij thuis niet gedocumenteerd heb. Dus welk draadje hoort bij wat?, ik als blinde kip heb daar wel even werk aan maar dat komt wel goed. Als ik daar uit ben bouw ik alles over naar de Raspberry.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Ik moet nog even wachten op de DS2482S-100 voor de thermometers, als die binnen zijn soldeer ik alles op een printje en vervang dan de Netduino (jammer maar het is niet anders).
Ik ben nog aan het denken of ik de watermeter erbij ga testen, deze geeft ook gewoon 1 puls als het metalen plaatje onder de sensor komt, is een stuk preciezer als de TRCT5000 en minder storing, hij wordt echter gevoed door 12 volt maar het signaal naar de GPIO is 3,3v d.m.v. enkele weerstanden en een paar componenten, ik heb hem nu op een Esp8266 bordje aangesloten met deze sensor:


3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

Gewoon doen, maar eerst even meten voor alle zekerheid, als het signaal hoger is dan 3.3v kan je eenvoudig een voltshunt maken, 2 weerstandjes en klaar is kees:)

De Zener diode is voor een te hoog voltage tegen te houden maar in dit geval niet echt nodig.



de weerstand calculatie kan je met het in DaL ingebouwde proge doen.

2 waarden weet je al te weten 12 volt en 3.3 volt (de 3.3volt mag afwijken)



----------------------
De DS2482 werkt goed moet ik zeggen, dat is echt goed getest.

Zit te denken om van de winter voor de ds18b20 sensoren de originele OneWire dll te herschrijven in C++ en compileren met Universal Windows zodat we de sensoren op een GPIO pin aan kunnen sluiten. Dat dit nog niet is gedaan door Raspberry of Microsoft vind ik 1 duimpje naar beneden. :) Zal wel geen geld mogen kosten.

Willie Wortel wijzigde deze reactie 17-06-2017 22:45 (3%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Ik gebruik nu ditschema

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

Klump, is dezelfde tekening alleen die van jou is mooier en een transistor rijker. :)
Ik werk al een tijdje met volt shunts en werkt goed moet ik zeggen. Zo weet ik ook dat mijn panelen omvormer een beetje afwijkt van mijn meting en dat ik kabel verliezen heb tot mijn SO meter. Leuk om te weten maar niet meer dan dat.

--------------
Ik ben nu de handleiding (help) en de OPTIONS pagina aan het aanpakken en alles wat niets met de Raspberry te maken heeft eruit aan het halen.

zoals IPaddress etc eruit, dit moet je regelen met je Windows IoT dashboard.


En gisteravond de 433Mhz support her-geprogrammeerd voor de Raspberry,

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Gisteren heeft de Pi2 de hele dag gelopen naast de Netduino, ze zijn beide aangesloten op dezelfde S0 meters. Het enige verschil dat ik zie is dat de Pi2 hogere pieken laat zien als de netduino. Mijn omvormer op ZW kan niet hoger dan 2540watt maar de Pi2 registreert pieken die hoger zijn. Het dagtotaal is precies hetzelfde. Het gaat uiteindelijk om het dagtotaal maar het viel me gewoon op
https://pvoutput.org/comp...24&sid1=11139&dt=20170618

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

@klump4u

Dit is het fine tunen, .... heeft waarschijnlijk te maken met interferentie op je data lijn.

We kunnen dit proberen op te lossen maar dan moet je zelf programmeren, OF de nieuwe DaL source code 0.0.3 maar dan moet je je string opnieuw intikken. Ik hoor het wel.

PulseMeters.vb in tab hardware:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
 Private Sub InterruptPortTask()

        _GpioPin = GpioController.GetDefault().OpenPin(_dPin)

        'resistor to GND
        _GpioPin.SetDriveMode(GpioPinDriveMode.InputPullDown)

        'resistor to VCC
        '_GpioPin.SetDriveMode(GpioPinDriveMode.InputPullUp )


        _GpioPin.DebounceTimeout = TimeSpan.FromMilliseconds(40)

Je kan pulldown veranderen in pullup, dus de ene regel quoten en de ander unquoten
zo:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
 Private Sub InterruptPortTask()

        _GpioPin = GpioController.GetDefault().OpenPin(_dPin)

        'resistor to GND
        '_GpioPin.SetDriveMode(GpioPinDriveMode.InputPullDown)

        'resistor to VCC
        _GpioPin.SetDriveMode(GpioPinDriveMode.InputPullUp )


        _GpioPin.DebounceTimeout = TimeSpan.FromMilliseconds(40)

Je kan je Debounce in "TimeSpan.FromMilliseconds(40)" verhogen van 40 naar 60

Als niets helpt dan kan je de MAX CAPACITY wijzigen:
https://tweakers.net/ext/f/yC9ijIHsZHPMALLMWHaEumPR/thumb.jpg

Je bevindingen worden in de nieuwe code geplaatst.

ER IS MAAR 1 ABSOLUUT IJKPUNT, je pulsen op je Netduino en op je Raspberry,

Log naar je USB je pulsen, ook naar je Netduino.


--------------------
Als je de DaL startup in IoT dashboard hebt aangevinkt kan je niet debuggen, je moet eerst startup uitzetten. Ik verzin dit niet dat is zo in IoT geprogrammeerd.

Willie Wortel wijzigde deze reactie 19-06-2017 10:32 (13%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Nou dan gaan we maar eens proberen te solderen dadelijk,

https://tweakers.net/ext/f/J1c5NlMnZOhYIknbNPxu0pUm/thumb.jpg

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • +1Henk 'm!
Voor DaL release versie 1.0.0 Bij het deployen naar de Raspberry staat In het immediate window alle info die nodig is, geen ballast.


Acties:
  • +1Henk 'm!
In DaL versie 1.1 zit SQL ondersteuning. (die versie duurt nog wel even en wordt volop aan gebouwd), hier een preview.

selecteer DataProviders / SQLite

Geef de naam van de DataBase (indien niet aanwezig wordt deze aangemaakt)
Geeft de naam van de Tabel (indien niet aanwezig wordt deze aangemaakt)



Geef bij tab content de stream, veldnaam en inhoud:


Thats it, zo simpel kan het leven zijn.

Schematische opbouw DaL DataBase en tabellen.


Ben altijd al voorstander geweest om alles in eigen huis te houden.

Willie Wortel wijzigde deze reactie 30-06-2017 20:56 (4%)


Acties:
  • 0Henk 'm!
Ik ben bezig de werking van de USB te testen, hier mijn bevindingen:

Als de Raspberry zonder USB stick aangezet wordt, daarna uitgezet, dan USB stick erin (als de Raspberry uit staat), daarna aangezet:

Wordt de USB stick niet gezien:



Hier had geen "Nothing" mogen staan.

REMEDIE 1 :
Start je Raspberry op, doe daarna (als de Raspberry aanstaat) de USB stick erin.
Start daarna DaL op, deze herkent je USB dan.

https://tweakers.net/ext/f/joA8j0dEn6CBAF4DcTUiVqNU/full.jpg

Dit is geen fout van DaL.
==================================
De routine voor het uploaden van de opstart string naar de Raspberry is nu geheel vernieuwd, opgebouwd geheel vanaf het begin.

Te zien in het filmpje uploaden van een enorm bestand, verifieren en met FILESWAP.HTML gedownload vanaf de Raspberry USB stick..
Ik hoop dat hiermee voor eens en voor altijd dit probleem is afgedaan want hier is al tig keer aan gewerkt.

Willie Wortel wijzigde deze reactie 25-06-2017 21:13 (27%)

Ik zie tijdens het testen dat mijn Raspberry niet de juiste tijd heeft en weergeeft, Kan ook de tijd niet resetten, opnieuw inlezen. Dacht dat dit automatisch gedaan werd.

get-date en set-date



---------------
SQL in DaL, hier even een print met veldnamen en waarden die weggeschreven worden in de SQL mytable.

Willie Wortel wijzigde deze reactie 26-06-2017 09:08 (49%)

SQL zit er nu volledig in geprogrammeerd, kinderlijk eenvoudig te bedienen. Razend snel.



ik heb op het ogenblik niet veel data, daar moet ik even een conversie progje voor schrijven om de data uit de Netduino sdcard over te zetten naar de Raspberry SQL database.

Klump, je kan in ieder geval je data van de Netduino sdkaart op je Raspberry stick zetten precies zoals het op je netduino kaart staat. Onder de voorwaarde DAL volumenaam of opstartstring blabla. (voor de juiste USB)

Dan moet je in de OPTIONS.HTML in de SQL tab de Database naam invullen en je tabel naam de prefix van je bestanden zoals die op je Netduino staan, de streams moet je dezelfde namen geven.
Klump, ...Als we een programma overzetten moet ook de data mee kunnen is onze mening:

Nou dat gaan we doen.
How To:

maak een tabel (en eventueel database if not exist) aan: (een database is een verzameling tabellen)

maak de velden namen aan, datum en tijd wordt automatisch aangemaakt:

De content mag leeg zijn ALS "Operate" NIET aangevinkt staat in tab STREAM & FEEDS !!



TIK IN in je webbrowser
[ IP : PORT] / convert : [STREAM] : DIRECTORY_NAAM
ZO DUS:
HTTP ..... 192.168.1.88:65444/convert:1:DIR_OLD_DATA

Deze streams bedoel ik uit tab Streams & Feeds:



DE DATA BESTANDEN MOETEN IN EEN APARTE DIRECTORY STAAN OP DE USB. ! (voorbeeld van mij DIR_OLD_DATA))

Dus maak een nieuwe dir aan en zet daar je databestanden in, sub folders mag, die worden ook ingelezen.
DAL gaat ervan uit dat elke file een data log file is. MET DE EXTENTIE .log

dan krijg je dit te zien: (de argumenten in de url zijn niet juist, dat is mijn programma = anders)


in de achtergrond:


gedaan?... dan willen we er ook wat mee kunnen doen...

ga dan naar de webpagina HISTORICCharts

OMDAT DAL een open end programma is waaraan meerder Raspberrys kunnen hangen moet je de raspberry kiezen waar je de data uit wilt halen, OOK die niet op je eigen netwerk zijn aangesloten kun je bereiken.




selecteer je data stream:


set datum tijd in en laad de gegevens uit je raspberry:


en hier kan je alles instellen.


click op create chart om de resultaten te zien.

=====
Het data converteren gebeurd volautomatisch:
zijn er meer veldnamen dan data dan wordt het dataveld gevuld met een 0.
is er meer data aanwezig dan veldnamen dat wordt de extra data genegeerd.

Willie Wortel wijzigde deze reactie 29-06-2017 10:49 (7%)

@jmeinders dat zullen we dan moeten onderzoeken welke juist loopt. Aan de pulsemeter instellingen kan nog wel wat aan gefine-tuned worden.

Wacht even, de pulsemeter staat op een pulldown instelling. Klump weet er alles van.
----
Hier druk bezig met de testen van SQL tabellen en converteren.

Alles zit achter het password, dat is standaard

je kan testen en de data ook weer weggooien. Dit gaat met commando "droptable"
ip:port/sqlcommand:droptable:STREAM

dus 192.168.1.88:65444/SQLcommand:dropTable:1

De stream is uit de SQL stream&feeds


Het is zaak dat je je Raspberry een ander ww geeft als standaard als alles draait.

De volgende testversie is nog niet helemaal klaar.
Het converten van Netduino naar Raspberry bestanden, jaar 2016 heeft bij mij 7 uur geduurd.

Daarom is de routine herschreven en wordt het converten nu in de achtergrond uitgevoerd.

je kan het converten opvragen met "isconverting"
https://tweakers.net/ext/f/2hXsXXlQowFv69YgyswAW2Hc/full.jpg

De voortgang wordt in een tekst bestand weggeschreven en via fileswap te zien door op het bestand te dubbel klikken:


hier een voorbeeld met 3 files:


je kan dus tussentijd de voortgang zien zonder het proces te belasten.

  • Gé Brander
  • Registratie: september 2001
  • Laatst online: 14:04
quote:
Willie Wortel schreef op vrijdag 30 juni 2017 @ 20:28:
@Gé Brander hoe kan dat nu? ik zie ze hier wel op mijn scherm, zal eens kijken wat de oorzaak is.
https://tweakers.net/ext/f/IJMgaM6bG84vjiL9cQHHwmdH/thumb.png

Dit is wat anderen zien.

In Forza 6 and Forza Horizon 3: The Racer Also Known As Aad1970 - http://dalue.codeplex.com - http://www.brander.site

@Gé Brander er zit een slotje op mijn fotoalbum, zal zoeken howto . En Nu?

---
er is een filter geschreven voor het converten.

Als je net als ik elke minuut data hebt weggeschreven naar de sdCard, dat is gewoon waanzinnig veel data. Mag natuurlijk maar is ballast.

Nu kan je elke X minuten converten. HowTo:

IP:Port/ CONVERT:STREAM:USB_DIRECTORY optioneel STEP

(5 voor 5 minuten, 3 voor 3 minuten enz..)

dus met step 5 minuten

192.168.1.88:65444/convert:1:dal_old_data:5

zonder een step:
192.168.1.88:65444/convert:1:dal_old_data

---------------------
Het inladen van 3 dagen gegevens uit de SQL tabel in bv Historic Charts is 1 seconde :)
hier een plaatje: :)

Willie Wortel wijzigde deze reactie 30-06-2017 22:38 (20%)

quote:
Ik heb niks veranderd .... vreemd.

==============

_GpioPin.DebounceTimeout = TimeSpan.FromMilliseconds(40)

Hoe werkt dit nu en waarom is de grafiek van PVOutput (altijd al) onjuist ?

De pulsemeter geeft bij 2000 pulsen (is bij iedere pulsemeter anders) 1 kWh Dus 1kWh / 2000 = 0.5 watt per pulse.

De DebounceTimeout = 40 milliseconde wat betekend dat de interrupt 40 milliseconde afgezet wordt. In die tijd registreert de pulsemeter geen pulsen. Reden, ruis en traag reageren ( open dicht ) pulsemeter.

Er gaan in 1 seconde 1000 milliseconde, de debounceTimeout = 40. Dus 1000 / 40 = 25 (theoretisch) pulse registraties per seconde ofte wel 25p * 0.5w = 12.5wS * 60s * 60m = 45.000 watt oftewel 45kWh uur. Ter vergelijk, mijn zon installatie kan max 3kWh per uur x 85% = 2,6kWh effectief.

Dus met de WIN IoT Raspberry kan gerust geëxperimenteerd worden door de DebounceTimeout hoger te zetten.

grafiek PVOutput.

Ik log naar PVOutput de wattageNOW:
kijk:


de wattageNOW (wat in een grafiek wordt weergegeven) is een moment opname, van de tijd tussen 2 pulsen berekend naar wattage met een cyclus van 5 minuten. Het is dus een wattage berekening van dat moment van verzenden. Het is dus zo dat 1 sec ervoor en 1 sec na de overdracht naar PVOutput de situatie anders kan zijn (wat ook zo is). Het is een wishful thinking dat de hoogst geregistreerde wattageNow is verzonden. De wattageNow is oorspronkelijk geschreven voor dashboard widgets.

Met averageWattNow is de opname realistischer. Deze berekend niet de tijd tussen 2 pulsen maar het aantal pulsen binnen een in te geven tijd begin en tijd eind teruggerekend naar wattage.


Hierdoor is het nut van het meegeven van de tijd als een pulse wordt ontvangen overbodig voor berekening (tijd argument wordt niet meegegeven in de huidige WIN IoT software)

Willie Wortel wijzigde deze reactie 01-07-2017 12:05 (3%)


Acties:
  • +2Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Alles gesoldeerd.
Voor


Na


Loopt nu op een Raspberry Pi 2, nog steeds spookpulsen.
Zal hem even laten draaien en dan eens de Pi3 eraan.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • 0Henk 'm!
Raspberry secrets:

De databases worden op je micro sd kaartje opgeslagen. Ten eerste omdat data overdracht veel sneller gaat dan met een USB en ten tweede omdat Microsoft dit zo wil vanwege veiligheid overwegingen.

Maar daarom niet getreurd, ik heb uitgerekend dat je op een 16GB kaartje 400 jaar data kan opslaan.

En ik heb nog meer goed nieuws. 8)

Tik na je password in je webpagina localpath, dan krijg je dit te zien:
https://tweakers.net/ext/f/JPh50wNN1l3gWQUZStwhn3Zm/full.jpg

open je Windows 10 IoT dashboard.

rechtermuis en selecteer:


geef je gebruikersnaam en wachtwoord, dan krijg je dit te zien:


kopieer je localpath wat je van DaL hebt ontvangen (boven) zonder de drive letter (C:) achter de C$
in mijn geval \Data\Users\DefaultAccount\AppData\Local\Packages\DaL-uwp_cspev2zbftvep\LocalState

dus :
C$\Data\Users\DefaultAccount\AppData\Local\Packages\DaL-uwp_cspev2zbftvep\LocalState

dan krijg je dit te zien:


daar staan de databases, de naam is afhankelijk wat je er zelf aan hebt gegeven in de streams tab
je kan nu kopiëren en rommelen aan je Raspberry over je netwerk.
mooi toch.

Je hebt toegang tot de C$, D$, E$ en U$ drives.

-------
Maar er is meer :)

open je powershell, zo dus:

geeft password.


dan heb je toegang tot je USB stick.

je hebt nu toegang alsof je in windows met de command promt werkt, dit is het oude MS DOS.

in mijn voorbeeld maak ik een directory JOOP en kopieer daarin alle USB bestanden van F:
Ik sta willekeurig ergens, maakt niet uit waar, daar gaan we...

C: (naar drive c)
CD\ (Change Dir \ root dir)
MD JOOP (Make Dir joop)
XCOPY F: /s C:\JOOP ( uitleg: /s = subdirs)

voor display alleen
CD JOOP (Change Dir joop)
DIR (list bestandnaam + folder)
DIR /s (list bestandnaam + folder + sub folder inhoud)


klaar. Hier het resultaat:


en in map joop ook alle sub dirs aanwezig:


Zo kan je dus ook naar je USB schrijven en of veranderen. :)
bijvoorbeeld een file verwijderen van je USB:

F:
CD\
del DaL_MemoryFile.txt

wil je het hele file systeem van je Raspberry zien in PowerShell, kan ook, tik dan in:
gdr -PSProvider 'FileSystem'

makkelijk toch, gewoon even oefenen.
suc6

Willie Wortel wijzigde deze reactie 03-07-2017 11:09 (33%)


Acties:
  • 0Henk 'm!
Ben een tijdje bezig met de SQL web pagina's
Ik heb even een demo gemaakt van een kleine selectie van wat er mogelijk is. Alles gaat automatisch om het geheel zo simpel mogelijk te maken voor een ieder.

de data is van mijn Raspberry en de gelogde gegevens zijn van vorig jaar.



de historicCharts web pagina totaliseert en is een rekentool.



DaL is een open end programma en wat je logt maakt niet uit.

Willie Wortel wijzigde deze reactie 06-07-2017 21:07 (31%)


Acties:
  • +1Henk 'm!
@klump4u
Denk niet dat ik niet naar de pulsemeter gekeken heb. Heb er een halve dag een testprog aangehangen.
Visual Basic:
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
 'pulsemeter test
            Dim pulsemeterTest As Task =
                New Task(Sub()
                             'pin nodig om pulse te verzenden (GPIO PIN D22 )
                             Dim sendPulsePinOnWrite As strcPinOnWrite = parsePinOnWrite("D22")

                             'wacht tijd volgende pulse willekeurig aangemaakt tussen 200 en 500 millisecs
                             Dim randomDelay As New Random()

                             'aantal verzonden pulsen teller
                             Dim sendPulseCounter As Integer

                             Do While True

                                 'stop zenden pulse naar de pin 
                                 WritePin(sendPulsePinOnWrite, False)

                                 Debug.WriteLine("pulses verzonden    : " & sendPulseCounter)
                                 Debug.WriteLine("pulses gedetecteerd : " & GetContent("Ptest_pulsemeterU", "F0") & vbLf)

                                 'wachten verzenden volgende pulse
                                 Task.Delay(randomDelay.Next(200, 500)).Wait()

                                 'teller 1 verhogen
                                 sendPulseCounter += 1

                                 'zend pulse naar pin welke verbonden is met pulsemeter weerstand 500 ohm
                                 WritePin(sendPulsePinOnWrite, True)

                                 'wacht 1 milliseconde
                                 Task.Delay(1).Wait()

                             Loop 'en opnieuw

                         End Sub)

            pulsemeterTest.Start()

ik kom nog met de eind conclusie want ik ben nog niet klaar.

In de situatie waarbij zonder _GpioPin.DebounceTimeout = TimeSpan.FromMilliseconds(40) (dus gequote)
is de score 100%, geen pulse te weinig maar ook niet teveel.

Het is wel zo dat hoe hoger de spanning hoe hoger de weerstand. Het is niet zo dat de waarde van de weerstand die we voor de Netduino gebruikten 1 op 1 ook voor de raspberry zou gelden. Moet een juiste ballans zijn ook met de pulsemeter. Het heeft ook te maken waar de pulsemeter zich bevind tov de raspberry ivm kabelverlies en of interferentie. Weet ook helemaal niet of de rasp gevoeliger is dan de ND. Alles is nog zo pril en de weg die we gaan is nog onbegaan.

help adds:

Willie Wortel wijzigde deze reactie 05-07-2017 11:06 (3%)

Omdat een ieder zo razend enthousiast is over dit project, hier een toegift. :)

Revealing the mystery rond de USB en sdCard, HowTo :

[IP:Port]/ [INITUSB] (om wat voor reden,....wisselen USB stick bv ??)

usb aanwezig.

[IP:Port]/ [INITUSB]

geen USB aanwezig, de default drive is de sdCard.

[IP:Port]/ [LOCALPATH]

geeft dezelfde info maar niet zoeken naar de default drive (USB)

Als de default drive de sdcard is wordt ook alle IO daarheen omgeleid, dit geldt ook voor het converteren.
Dus zonder USB, alle IO naar sdCard.

Hier een demo copy paste in je verkenner voor snelle toegang.

TIP: de snelle toegang path link (rechtermuis) vastmaken aan start of aan snelle toegang vastmaken. Hoef je alleen te klikken op de link. Makkelijk toch.

En ruimte om te hobbyen .....hebben we niet over te klagen....

Willie Wortel wijzigde deze reactie 06-07-2017 19:24 (13%)

Er is aan de Pulsemeter een invoer optie toegevoegd, 'debounceTimeout'



Stelt de wachttijd in milliseconde in waarbij de veranderingen NA een pulse detectie worden genegeerd en dus geen interrupt ValueChanged-gebeurtenissen genereren. (Netduino kent debouncetimeout niet, dus debouncetimeout = 0 werkt hetzelfde als een Netduino)

Ik heb na meerdere testen geen rariteiten kunnen ontdekken in de (event) interrupt afhandeling. Elke pulse die verzonden was naar de GPIO pin was netjes gedetecteerd zonder spook pulsen. Moet wel erbij gezegd worden dat niet over een lange kabel is getest.

ADD: kom je er niet uit, de oplossing is eenvoudig. In plaats van een vaste weerstand kan ook een regelbare weerstand ertussen geplaatst worden. Stel de weerstand zo precies af dat de pulse doorgelaten (ontvangen) wordt, net na het kantelpunt van wel en niet ontvangen (detecteren). Wil je daarna een vaste weerstand, meet dan de regelbare weerstand met de Ohm instelling van de universeel meter op de twee pootjes, De weergegeven waarde is de weerstand, neem de weerstand die het dichtst bij de waarde komt.
Voorbeeld: https://www.bitsandparts....nden-Potmeters/c1-4-11-21
en http://www.ebay.com/itm/2...m:mrvGSPgzKIg-tkuQvIi5VxA

En vergeet niet, werk met 3.3v op de pulsemeter.

Willie Wortel wijzigde deze reactie 07-07-2017 09:09 (37%)

tw_eek ik denk dat je oplossing te hoog gegrepen is voor de gemiddelde hobbyist maar voor een ieder die het ziet zitten om het erin te hatseflatsen, een leuk projectje.

Hier een visuele voorstelling van ruis en pulse:
quote:
jmeinders schreef op zaterdag 8 juli 2017 @ 12:48:
@Willie Wortel Om gegevens naar pv output te zenden was altijd pulse_meter ("0").watts en .kwh ik zie het er nu niet bij staan . Wat moet ik invullen voor v1 en v2 bij content? Ik heb voor v1 pulse_meter("0").total_ pulses en v2 pulse_meter("0").pulses, maar dit werkt niet. Of doe ik iets verkeerd?.
Nee je doet niks verkeerd, sorry maar in de options pagina had ik de tabel vergeten bij te werken.

hier is de options.html, die moet over je oude options heen.
https://we.tl/NkwvqhSx9J

suc6
groet.

------------
Als alles nu werkt dan kan DaL voor de Raspberry versie 1.0 het daglicht zien. Het wachten is op het resultaat. :)

------------------------------------
@klump4u ik heb even naar je data gekeken, vandaag zie ik een spookpulse om 6:15

Op je test rasp zijn die 2 pulsen (minimaal) achter elkaar niet te zien.

Willie Wortel wijzigde deze reactie 08-07-2017 21:21 (19%)


Acties:
  • +1Henk 'm!
@Rol-Co


aanmaken:


hier variabele aanmaken en samenvoegen


hier verzenden:

Acties:
  • +1Henk 'm!
Ik heb het allemaal wat begrijpelijker gemaakt, {VAR}"1" zegt natuurlijk niks. Ik snapte er niks van. :)

variabele builder, kijk naar de ID, daar kan een omschrijving ingegeven worden:


zie je terug in de pulldown:


dit werkt natuurlijk in het gehele programma door.


ook in de dashboard designer:


Jullie Tweakers zitten gewoon vol van de goede ideeën :) .

Acties:
  • +1Henk 'm!

  • Cranberry
  • Registratie: juni 2004
  • Laatst online: 14:20
Sorry @Willie Wortel en anderen: ik begin steeds meer aan mezelf te twijfelen. Sinds de upgrade naar de laatste firmware van de NetDuino en de 4.x versies van DaL werkt m'n display niet meer, ook niet met een nieuw aangeschaft display. Vol goede moed ben ik nu aan het testen met de RPi en weer krijg ik m'n SainSmart display niet aan de praat .... }:O

Config string:
code:
1
V:1.0.0_D:10-7-2017_T:13:36;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;0,1,D2,2000,0,,0,1,300,10000,0,0;-1,;-1,;0,00:00:00,23:59:59,0123456,1,10-07-2017,10-07-2017;-1,;0,0,0,0,Test,,0,3;-1,;0,1,2,4,20,,,0x38,10,1,1,,,,;-1,;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,UART0,2,7,2,0,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;192.168.1.88,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;41658;556;

Plaatje van de config:


De pins van het display zijn als volgt aangesloten: SDA->Pin3/GPIO2, SCL->Pin5/GPIO3, VCC->Pin4, GND->Pin6

Volgens de verkoper heeft de aansturing van het display als adres 0x20 of 0x38. Beide waarden heb ik geprobeerd.

Hardware: RPi3 met Win10 10.0.15063.0. Naast display geen andere hardware aangesloten en/of geconfigureerd.
@Cranberry Je sainsmart heeft bijna op zeker adres 0x27

en zo sluit je de display aan:

Willie Wortel wijzigde deze reactie 11-07-2017 07:41 (62%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Nou de pi2 met pi 3 omgewisseld.
Krijgt de P1 kuren.
Op de Pi2 wel netjes een compleet telegram en op de Pi3 niet.
Voeding is 2,5a van de Raspberry zelf.

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • +1Henk 'm!
Omdat er in DaL voor de Raspberry veel met I2C gewerkt wordt is nu ook check op I2C adressen:



Je kan namelijk niet 2 verschillende sensoren aan 1 adres koppelen :)

DaL versie 1.0.1

toegevoegd:
- in miscellaneoustab: pinOnWrite als error case een bericht heeft.


veranderd:
- ID alfanummerieke ingave in VarBuilder mogelijk om leesbaarheid te vergroten.

Netwerk:
- De netwerkt command parser is geoptimaliseerd voor de Raspberry, daardoor is de response tijd verkort.

Acties:
  • +4Henk 'm!

  • jmeinders
  • Registratie: december 2012
  • Laatst online: 14:49

jmeinders

www.jmeinders.nl

Alles netjes op een printje gesoldeerd omdat het dan minder snel storing geeft. Ben zeer tevreden met Raspberrypi3 samen met Dal UE.


Omnik 3.0 15 Eging panelen 195wp

@klump4u ik zal vandaag nog even de software op de p1poort aansluiten.

Misschien ten overvloede, staan je instellingen goed voor je P1. Soms zie je dat soort kleine dingen over het hoofd.

Aangesloten, alles werkt naar behoren.




---------------------------------
onder de motorkap:

We werken met de stopwatch voor een precisie berekening en om voor nu een in de toekomst er zeker van te zijn dat alle timings (wachttijden) juist zijn (de ene rasp is sneller dan de ander) is de software overal aangepast. deze berekening is eenmalig bij het opstarten.



de stopwacht.frequency geeft het aantal ticks per seconde voor de desbetreffende machine aan.

Willie Wortel wijzigde deze reactie 14-07-2017 09:21 (66%)


Acties:
  • 0Henk 'm!
@klump4u er blijven weinig andere mogelijkheden over. Is het mogelijk om de Raspberry om te ruilen?

En de data draad komt direct van de P1 af, niet eerst naar een splitter of zo?

Misschien een maandagmorgen model, misschien is er verschillende hardware in dezelfde modellen, ze worden ook op verschillende locaties gemaakt,.

...Je kan als laatste de volgende programma code proberen:
Visual Basic:
1
2
3
4
5
6
7
Dim tmptelegram As String = ""

   For t As Integer = 0 To _strTelegram.Length - 1
      tmptelegram &= ChrW(AscW(_strTelegram.Substring(t, 1)) And 127)
   Next

 _strTelegram = tmptelegram

dit moet je plaatsen in je P1port_SmartMeter.vb in deze code onder de regel:
_strTelegram = dataReaderObject.ReadString(bytesRead)



Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Heb bovenstaande erbij gezet, telegram nog steeds niet goed maar ik zie wel sneller de waardes op het now scherm verschijnen.
Zal hem straks nog eens testen met alleen een ic voor de P1 poort.
Raspberry heb ik van iemand overgenomen dus ruilen gaat niet maar ik wil eerst alles uitsluiten voor ik een nieuwe koop.
Ik vind het vreemd dat de Pi2 wel meteen een goed telegram uitspuugt als ik deze aansluit op de P1 poort.
Ik lees op internet dat de Bluetooth ook op de UART zit maar daar word ik niet wijzer van.
P1 kabel zit tijdens het testen alleen in de P1 poort rechtstreeks vanaf de Pi3.
Dit is het telegram:

klump4u wijzigde deze reactie 16-07-2017 10:54 (12%)

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • +1Henk 'm!
De Digole display over I2C wordt nu ook ondersteund in DaL:







@jmeinders ik zal je een update voor je maken, daarin zit ook RGB maar is (tijdelijk )afgezet.

Acties:
  • +3Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Display in het deurtje van de meterkast gemaakt, versie 1.0.1 van de website http://ultimate-datalogging.nl/ in de Pi2 geladen.
2 x S0, P1-poort, 4 x onewire en naar 6 accounts op Pvoutput loggen.
Pi3 maar even aan de kant gelegd.




3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


  • jmeinders
  • Registratie: december 2012
  • Laatst online: 14:49

jmeinders

www.jmeinders.nl

Digole display werkt hier ook, kan hem mooi weer gebruiken. Super bedank Willie.

Omnik 3.0 15 Eging panelen 195wp

quote:
klump4u schreef op zaterdag 22 juli 2017 @ 13:34:
[...]

Ja die had ik ook al gezien maar geen resultaat, kan ik het niet via de browser versturen zodat ik een eventuele foutmelding kan zien?
Nee, maar je kan je Authenticatietoken zien bij:



als je ingelogd bent.
Dan kan je vergelijken met je huidige.

Acties:
  • +1Henk 'm!
Ben wat verder gegaan met de RGB LEDs:

de PCA9685 (aansluiten op I2C, makkelijker kan niet):



Kan devices toevoegen, kunnen in cascade of apart (maakt niet uit):


en nu komt het mooie:

Ik kan dus met 1 RGB ledje meerdere processen montoren.

De kleuren selecteer ik met de colorPicker, dus niet moeilijk doen:


En de pulldown keuze uit pinOnWrite:


Omdat een en ander nogal complex is en keuzes gemaakt moet worden uit eerdere invoer is alles met pulldown menus. Kan dat in ieder geval niet mis gaan. :)

eea is ook doorgetrokken in de RGB content menu:




als ik over een paar weken alles in elkaar heb gehatseflatst zal ik eens een filmpje online plaatsen.
@Cranberry de piekverbruik data komt toch niet van een pulsemeter?
De opbrengst verschilt te veel tussen de ND en de Rasp, daar is wat anders aan de hand.


@jmeinders ik zal er naar kijken, even uitzoeken of het de timefilter is die niet werkt of de 7 segments die niet de cijfers in de display op zwart zet.

------------------------------------------------------------------------------------------------
ik ben al dagen? druk? bezig om een class (programma code) te schrijven die de SMA omvormer van mijn zonnepanelen uitleest.

deze: http://www.sma-benelux.com/

eens kijken of me dat lukt. >:)

Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
quote:
arnaudarduino schreef op zondag 30 juli 2017 @ 15:30:
Er onstaat een fout of ik doe iets niet goed.
Ik klik op DaL op DaL.sln, en start nu Visual studio op, dit duurt even.
Als alles geladen is (2 projecten) zie geen projecten of wordt er "Dal (unavailable)" en "Dal_helper (unavailable)" bedoeld , ik kom niet echt verder.
Graag een beetje hulp
Heb je 2 x op ja geklikt als de projecten laden?
Heb je een screenshot van Visual studio als alles geladen is?
Zo is het bij mij,

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
@arnaudarduino
Start eerst eens visual studio op en laad dan Dal.sln met open Project/Solution in het midden van de startpagina.
Op deze 2 vragen moet je OK intoetsen.


3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Klik in Visual Studio op ''Help" en dan op "About Microsoft Visual Studio"
Heb je deze ook allemaal staan?


3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

Vind het toch jammer dat de installatie moeizaak verloopt. Als alle onderdelen juist geïnstalleerd zijn op je computer, (je kan beter teveel onderdelen installeren dan te weinig) dan zou alles toch gewoon moeten werken.

kijk, wat minimaal geïnstalleerd moet zijn is VB / C# voor Universal windows en dat is maar 1 vinkje.



en direkt daarachteraan is de SDK van windows 10 voor ontwikkelaars.
https://developer.microso.../downloads/windows-10-sdk


of je daarna de referenties opnieuw moet aanklikken is voor mij een blinde vlek. Ik heb geen computer voorhanden waar niets op geïnstalleerd is.
Maar als dit niet je plaatje is qua referenties dan is het nie goe.

(kenners van DaL zien nieuwe stukjes software dus delen van het plaatje zal niet hetzelfde zijn)

de DAL_HELPER project moet niet aangezeten worden.

ADD: als blijkt dat niet alles geïnstalleerd was en extra code installeer, pak dan een nieuwe kopie uit van DaL, er zal geschreven zijn in je oude project en wat niet zichtbaar was op dat moment zal uitgezet worden in dat project. Dus werk met een nieuwe DaL unzip code.

Willie Wortel wijzigde deze reactie 31-07-2017 08:32 (14%)

Je bedoelt je IoT dashboard?

ga naar de naam Raspberry, rechtermuis / Open in device Portal

start DaL op je raspberry:


ga daarna verder met je pages/options.html web pagina en vul je aangesloten hardware in, save options en restart DaL
suc6

ADD zorg dat je afbeeldingen neer kan zetten hier, die zeggen meer dan 1000 woorden. Er zijn genoeg foto providers op het web.

Willie Wortel wijzigde deze reactie 01-08-2017 07:42 (13%)

RGB LEDs :

Als je nu net als ik RGB leds in je bouwsel wil hatseflatsen samen met een PCA9685 (een investering van 3 euro inclusief 20 RGBtjes) zit er nu een hele handige tool in DaL.

initialiseer je aangesloten PCA door de ID en I2C adres naar DaL te versturen...daarna opnieuw opstarten.


Ga daarna naar de tab pinonwrite (of andere tabs binnen RGB) , vul de PCA en section in (alles PullDown) en klik op de color button.
Vink "Send color to Raspberry" aan. Nu wordt iedere verandering direkt verzonden naar je raspberry en zal je "led on the fly" direkt de gekozen kleur van de colorpicker aannemen. Zo kan je heel gemakkelijk, A...controleren op juiste werking, B...de gewenste kleur bekijken/aanpassen. De veranderingen gaan zo snel dat dit niet te zien is met het oog.



Is dat eenvoudig en mooi....het leven is al gecompliceerd genoeg :)

voorbeeld van een toepassing:

content waarde (elektra verbruik) kleiner of gelijk dan 0 rood, anders groen (er zijn namelijk maar 2 waarden aangemaakt). Andere kan je zelf verzinnen.

Bij PinOnWrite: PVOuput provider verzenden kleur geel, SQL schrijven blauw, etc....

Het lijkt wat overweldigend maar is het niet, de gehele uitleg staat in de DAL wiki.

  • arnaudarduino
  • Registratie: juli 2015
  • Laatst online: 17-01 16:13

arnaudarduino

Trial and error, and reverse

Mijn IoT dashboard ziet er zo uit
Op het scherm aangesloten op mijn rasp blijft het beeld van de specificaties met plaatje van de raspberry pi 2

arnaudarduino wijzigde deze reactie 01-08-2017 18:37 (7%)

@Cranberry @arnaudarduino

Je kan dus ook je MAC adres van je raspberry in je router onder static DHCP invullen en zelf een IP kiezen, en wegschrijven in je raspberryconfig.js Nu zal je altijd hetzelfde adres houden.


  • arnaudarduino
  • Registratie: juli 2015
  • Laatst online: 17-01 16:13

arnaudarduino

Trial and error, and reverse

Wikinl is daar duidelijk in.

Maar,
quote:
Start de OPTIONS pagina in Dal 1.0.1/webpages/pages/OPTIONS.HTML
Stel de opties in via deze pagina(bovenaan staat een wikihelp) en save dit naar DaL op je Raspberry
euhm ?? Welke bestanden moeten er dan naar de raspberry.

Ik kan nu het dashboard zien ,slimmemeter baud aanpassen maar hoe en waar opslaan.

En dit display aangesloten, maar dan nog instellen.
(LCD display 20x4 IIC/I2C interface met 2 pins seriele aansturing. Gnd, VCC, SDA, SCL
.
SORRY HOOR

arnaudarduino wijzigde deze reactie 03-08-2017 12:27 (107%)

hum.....Zal alles nog meer in JenJ schrijven:

Klump arnaud moet zijn gas pre en post fix veranderen in zijn P1

de prefix is "S)(" en de post is "*m3"



in:

Willie Wortel wijzigde deze reactie 06-08-2017 21:50 (59%)

Ik heb net alle routines opnieuw getest zoals wegschrijven op USB en SD kaart maar alles werkt naar behoren. Het inladen zowel van USB en SD kaart werkt naar behoren.

sd kaart


USB:


Er is echt goed naar gekeken hoor. Met NOW kan je altijd kijken waar de opstart string geladen is.

----------------------------
mindergas bericht gehad:

Er is niets veranderd aan de API maar ik zal voor de zekerheid de log checken op een later
moment vandaag.

Met vriendelijke groet,
Ik heb een geintje geschreven voor DaL, een heuse lichtkrant, uit te breiden tot 64 modules, ook RGB full color. :) leuk hè


  • arnaudarduino
  • Registratie: juli 2015
  • Laatst online: 17-01 16:13

arnaudarduino

Trial and error, and reverse


Bij lukt het nog niet om gas weer te geven.
En de tijd staat niet meer goed,sinds usbstick.

arnaudarduino wijzigde deze reactie 10-08-2017 18:05 (80%)


  • arnaudarduino
  • Registratie: juli 2015
  • Laatst online: 17-01 16:13

arnaudarduino

Trial and error, and reverse

Proberen kan geen kwaad ,zie hierboven 5 terug.

Staat toch een S.

  • arnaudarduino
  • Registratie: juli 2015
  • Laatst online: 17-01 16:13

arnaudarduino

Trial and error, and reverse

Deze 5 had ik al ,overgehouden tijdens vervangen van een groepenkast, er kan gewoon te veel mee. Nu eerst maar eens zien dat ik pulsen in beeld krijg.

Op deze manier ook geprobeerd, geen puls.
Je kan vanalles in stellen(je zou dat kunnen 8)7 ), standaard staat die al op pul out. Dat betekent pulsuitgang geactiveerd. MAAR GEEN PULS.

Dat uit proberen heeft me waarschijnlijk 4 gpio gekost 17,27,22,26.
Deze reageren niet.
@arnaudarduino je volt shunt is juist. Je moet dan wel 5v op ingang 20 zetten.



En je Pulses op 100 instellen. Je moet dus 10 watt verbruiken wil de meter een pulse geven.
NB, de meter zelf geeft per 1 watt een LED pulse, dus 9 LED pulsen later pas een SO pulse !

Daarnaast, de raspberry MOET minimaal 2 volt op zijn GPIO ingang krijgen om te detecteren.
Test pulsemeter icm pcf8574:



hier aangesloten op de pcf8574


Het schema is nog simpeler dan gedacht, je hebt ook geen I2C aansluiting nodig voor de pcf.

de instelling is GpioPinDriveMode.InputPullUp, debounce = 20

je laat nu de pcf het werk doen zeg maar. De pullup weerstand is 4k7 ohm that's all. :)
en het werkt uitstekend in de test opstelling zeg maar. Morgen testen op ruis.
Hier zijn de 2 schema's met betrekking tot de pulsemeter.

Deze is voor 5v ~ 3.3v SO meters icm een pcf8574


deze is zonder pcf8574 met de data draad over GND.


Wat beter is etc zal getest moeten worden, in ieder geval heb ik geen spookpuls kunnen hatseflatsen.

NB: het is altijd verstandig om op de spanning draad Vcc (aansluiting 20 naar je pulsemeter) een weerstand te hastseflatsen maar dat is afhankelijk welke pulsemeter je gebruikt en de lengte van de bedrading naar/van je pulsemeter. Ik heb hier bij het testen een weerstand van 4.7k ertussen geplaatst maar de draad was maar 30 cm :) .

Met dit schema kan een "spook pulse" niet meer plaatsvinden (zeg nooit nooit?) want de data draad is spanning vrij en geeft alleen spanning indien de stroomkring gesloten is (pulse van de pulsemeter). Dit in tegenstelling tot de vorige schema's die precies andersom werkten. De debounce instellen groter dan 20 milliseconden (20 duizendste van een seconde) . En onder de motorkap, de mode = GpioPinDriveMode.InputPullUp
Happy counting :)

Willie Wortel wijzigde deze reactie 17-08-2017 08:20 (40%)

In de volgende update van DaL zal het USB device NIET langer ondersteund worden.! De reden is dat Microsoft voor services apps externe devices gesandboxed heeft vanwege veiligheid issues, wat voor weet ik veel. Tot voor kort was dit mogelijk met een workaround maar die glitch is ook dicht gespijkerd. Mocht Microsoft echter in de toekomst de sandbox verwijderen is het in de sourcecode eenvoudig te veranderen.

De SD Kaart biedt voldoende (zelfs meer en betere) mogelijkheden.
-----------------------------------------------

DaL kan met de volgende update gewoon geïnstalleerd worden met het Windows 10 IoT dashboard. Zonder Visual Studio 2017 te gebruiken. Het is niet nodig om in de source code te rommelen.

Howto:



hier een demo video:

makkelijker kunnen we het niet maken :)

Willie Wortel wijzigde deze reactie 18-08-2017 11:28 (6%)

Er zijn te weinig UARTs (serial port) aanwezig op de Raspberry. Ben software aan het schrijven (extentie) om de USB als UART te ondersteunen.

deze bedoel ik:
https://www.ebay.com/sch/...rter+CP2102+STC+&_sacat=0

wachten tot de bestelling binnen is.
Gaat gewoon in de USB, zodoende zijn er tot 4 UARTS als uitbreiding. Deze kan je oa gebruiken om de P1 slimme meter uit te lezen. De Rx en Tx op het printje zijn dan dezelfde uit/ingangen als op je Raspberry, communicatie volgens DaL keuze pulldown menu.

De Netduino heeft 1MB geheugen, de Raspberry 1024x (1GB) zoveel.

Dan kan je leuke dingen uithalen,...een JSON als opstartstring :)


  • arnaudarduino
  • Registratie: juli 2015
  • Laatst online: 17-01 16:13

arnaudarduino

Trial and error, and reverse

Maar = is mijn schakeling oke, het draaide toch , is sluiting of verkeerde schakeling waardoor er 4 gpio defect gingen verder gegaan met dit resultaat. Het is electronica kan zomaar eens de geest geven , zeg ik ook altijd. Ben alleen niet bekend dat er spullen stuk gaan bij ons, lucky us. Tijdstip van laatste vermelding database is dezelfde als uitval router vandaar, niet DAL maar misschien uitval met sluiting rpi die netwerk plat gooide . Ik ga het uiteraard weer proberen als ik weer een rpi3 heb, tot die tijd lees ik weer terug en mee.

Hij is binnen, nu nog tijd, met 2 kleine coolers

arnaudarduino wijzigde deze reactie 16-09-2017 09:51 (16%)

De USB uart sticks zijn binnen,....De USB serial devices zijn in DaL ingebouwd, nu 4 extra serial poorten. Het werkt goed moet ik zeggen.

deze post: Willie Wortel in "DaL software op de RaspBerry Pi op Windows 10 IOT"

NOOT:
Omdat de "portName" van de USB to TTL UART van de devices leeg terug geven (niet ingevuld zijn) kan ik software matig niet selecteren. Ik kan alleen de UART0 van de Raspberry zelf herkennen, de anderen geven een lege string terug. Dit is niet ernstig, je hoeft alleen te kijken bij gebruik van meerdere USB devices of de juiste USB is geselecteerd, anders in een andere USB ingang plaatsen. Het is geen rocket sience. :)

Heb je dus 1 USB device, selecteer dan USB 0, heb je er 2 dan USB 0 + USB 1 enz......

Willie Wortel wijzigde deze reactie 10-10-2017 15:11 (29%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Ik heb de watermeter nu apart op een pi3 aangesloten met de veranderde class Pulsemeters.vd die je me gestuurd had en dat werkt, ik krijg in Visual 2017 nog wel de fout melding
code:
1
2
initialisation sensors error: PulseMeters
Init Sensors are done

Maar hij werkt wel.
Ik zal hem vandaag als het lukt nogmaals op de Pi2 waar ik alles op heb draaien aansluiten en kijken wat dan het resultaat is.

Edit,
Ik heb de sensor van de watermeter nu parallel aangesloten op de pi2 met een extra pullup weerstand van 1Kohm tussen de 3,3v en de data pin van de pi2, dit lijkt te werken.
Edit2,
Dal op de Pi2, 2x S0, metaalsensor op de watermeter, P1 slimme meter, 4 maal onewire en een 4x20 LCD-display :)


En alles naar PVOutput, gewoon omdat het kan :)

klump4u wijzigde deze reactie 12-11-2017 14:41 (45%)

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

quote:
klump4u schreef op vrijdag 17 november 2017 @ 19:20:
@Willie Wortel
Watermeter en teller op de pi lopen na 5 dagen gelijk op, ik ga het nog even in de gaten houden maar ik heb er goede hoop op. Zou de eerste goed oplossing zijn voor mijn watermeter na getest te hebben met de Netduino, Domoticz en ESP8266.
Klump, loopt het nog juist? en volgens welk schema heb je de watermeter aangesloten op de Raspberry?

deze:

Als je volgens bovenstaand schema te werk ga dan is het nodig om de volgende regel toe te voegen aan de pulse interrupt routine:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub interrupt_soPulseMeter(sender As GpioPin, e As GpioPinValueChangedEventArgs)

        ' * To prevent stray voltage pulses                          *
        '' *******                                               ******
        '' * If your system has a higher standby power usage than 10W *
        '' * adjust the cnstMinWattageToDetect as needed              *
        Const cnstMinWattageToDetect As Integer = 10

'**** dit moet toegevoegd worden.
        If e.Edge = GpioPinEdge.FallingEdge Then Exit Sub

Willie Wortel wijzigde deze reactie 10-01-2018 12:22 (38%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
De watermeter loopt nog precies gelijk op met de pulseteller op de pi2 _/-\o_
Ik heb deze sensor: de LJ18A3-8-Z/BX NPN 3-wire Inductive Proximity Sensor Detection Switch DC10-30V
https://www.ebay.com/itm/...31297?hash=item25cdd8dbe1




Deze heb ik aangesloten met onderstand schema met de aantekening:
Wemos G = GND v/d Pi2
Wemos D1 = GPIO26 v/d Pi met een pullup van 1Kohm vanaf de 3,3 v
Voeding v/d sensor is 12v adapter die ik nog had liggen.
Zonder pull up v/d 3,3v werkte het niet op de Pi



En ook water naar PVOutput, gewoon omdat het kan.

klump4u wijzigde deze reactie 20-11-2017 16:23 (8%)

3020wp-ZW Live 1960wp-ZZW Live Altantic Explorer 270 Live

@klump4u , @jmeinders

Die dubbele led was me nooit opgevallen. Ik heb nu de werking van "ValueChanged" event nader onderzocht (debug) en in iedere situatie geeft de event de hoog en laag verandering terug. Eigenlijk is dit logisch en toch ook weer niet, logisch omdat een verandering wordt weergegeven, onlogisch omdat een debounce timeout is ingesteld in x milliseconds en deze de 2e verandering zou moeten tegenhouden.

Ieder nadeel heeft ook een voordeel, nu kan je simpel buttons inbrengen zonder additionele hardware die bepaalde handelingen (of niet) onderbreken/herstellen.

spookpulsen:
Mijn meting: De GPIOpin "ValueChanged" event reageert (trigger moment) indien de spanning van 0 naar >2.2 volt wordt gebracht (InputPullDown), Of van 3.3 naar < 2.5volt (inputPullUp). De snelst gemeten aantal changed events is bij mij 177 in 1 seconde, oftewel 5ms reageertijd. De veranderingen worden in een wachtrij geplaatst.

Aansluiten pulsemeter:
Er zijn vele wegen die naar Rome leiden maar deze is mijn inzien de beste:





Waarom?: Correct me if I am wrong.
spookpulsen worden veroorzaakt door fluctuaties in de stroomkring (ruis). In bovenstaande tekening is het zeer onwaarschijnlijk dat ruis meer dan 2 volt bedragen.

En heb je ook de regel "If e.Edge = GpioPinEdge.FallingEdge Then Exit Sub" heb je een heel stabiel systeem omdat de pulsen gefilterd worden voordat deze worden verwerkt.

---
Dit project heeft een tijdje in een laadje gelegen omdat mijn gabbertje en maatje die overal waar ik was in december is overleden, de zin om verder te gaan met dit project ontbrak me.
Ik heb mijn test boardje klaar, deze gaat de hoofd Netduino vervangen. Daarmee is het omzetten naar de Raspberry definitief een feit. Het testen en uitzoeken heeft aardig wat tijd gekost. Windows IOT op de Raspberry, er is zo weinig kennis omtrent dit onderwerp dat het hele project een grijs gebied was.



Uiteraard wordt mijn paneel nog een beetje netjes gehatseflatst zoals het verwijderen van het plastic breadbordje, ledjes aanpassen etc en een glasplaatje ervoor. Wat voorop moest staan is de betrouwbaarheid van de software en hardware. Maar alles gaat gelikt hoor, smoetlie zeg maar. :)
Info: Nog een aantal dingen tegengekomen die voor de Raspberry .NET framework versie anders geschreven moesten worden. Een ervan was het "time filter" wat aangepast moest worden. Heeft te maken met verschil in notatie .NET framework en .NetMicroFramework voor Netduino.


Als je DaL op je Raspberry hebt draaien en je wil een nieuwe versie op je Raspberry zetten, zorg dan eerst dat het programma is gestopt door het uit te zetten met je Win IoT dashboard maar ook de STARTUP niet aanvinkt. Dit voorkomt moeilijkheden.



Je krijgt namelijk deze error te zien:



dit komt omdat de raspberry het netwerk adres bezet houdt. :) en geen fout van de software is maar van de gebruiker,. 8)

--
Herstellen van de TimeFilter:
zoek deze regel in function TimeFilter:
Visual Basic:
1
If .SelectedDays.IndexOf(dtNow.DayOfWeek.ToString) > -1 OrElse .SelectedDays = "" Then

en verander deze in:
Visual Basic:
1
If .SelectedDays.IndexOf(dtNow.DayOfWeek.ToString("d")) > -1 OrElse .SelectedDays = "" Then

Nu zal de timefilter weer juist functioneren.

Willie Wortel wijzigde deze reactie 03-02-2018 09:12 (75%)

Hier de DaL JSON defs, deze omschrijvingen mogen aangepast worden (de rode tekst bv in nederlands) en zijn zichtbaar door het gehele programma. Deze JSON werkt met alle HTML pagina's en de Raspberries.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function DaL_JSON_Definitions() {

    // alle property key omschrijvingen (in het rood gekleurd) mogen aangepast worden, NIET de property Keys zelf (de donkere tekst).
    
    var P = {

                pulsemeters: {
            name: "PulseMeters", id: "ID", operate: "Operate", pin: "dPin", pulses: "Pulses", unit: "Unit", pinonwrite: "pinOnWrite", starvalue: "startValue", reset: "reset To Start Value On Newday",
            delaytozero: "delayToZero", maximumcapacity: "maximum Capacity", sensortype: "sensorType", debounce: "debounce"
        },
          return P;
}

als je nu de omschrijving verander als voorbeeld:
JavaScript:
1
2
3
4
 pulsemeters: {
            name: "Willies soPulseMeters", id: "Omschrijving", operate: "Inlezen", pin: "digitale", pulses: "Pulses per kw", unit: "Unit", pinonwrite: "pinOnWrite", starvalue: "startValue", reset: "reset To Start Value On Newday",
            delaytozero: "Delay To 0 NOW in Seconds", maximumcapacity: "maximum Capacity", sensortype: "sensorType", debounce: "debounce time"
        },

dan wordt ook je Options pagina veranderd:


maar ook in je opstart JSON die naar je Raspberry wordt verzonden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"Willies soPulseMeters" : [
   {
      "Omschrijving"        : "0",
      "Inlezen"             : true,
      "digitale"            : "D2",
      "Pulses per kw"       : 2000,
      "Unit"                : "kwh ",
      "pinOnWrite"          : "",
      "startValue"          : 0,
      "reset To Start Value On Newday": true,
      "Delay To 0 NOW in Seconds": 300,
      "maximum Capacity"    : 10000,
      "sensorType"          : "PulseMeter",
      "debounce time"       : 20
   }],

maar ook in je Raspberry. Zo ben je dus erg flexibel om alles aan te passen. Zo simpel kan het leven zijn.

Willie Wortel wijzigde deze reactie 15-02-2018 09:17 (102%)

naslag werk:

Alle JSONs worden nagekeken op syntax en dubbele naam omschrijvingen (Keys) Alleen de naam keys worden nagekeken, de rest maakt niet uit wat je ervan bakt.

Indien conflict:



Waarom conflict in dit voorbeeld?

Alleen chars ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 en space zijn geldig.
De omschrijvingen mogen ook niet beginnen met 0123456789 space of _
De omschrijvingen mogen ook niet eindigen met space of _




Dubbele omschrijvingen in de name key gelezen van RECHTS naar LINKS ! waarbij de kleinste omschrijving de zoek lengte bepaald.


deze is dus wel juist:


kijk maar de melding conflict in omschrijvingen is verdwenen, alleen de illegal char is nog aanwezig.


Indien er veranderingen aan de standaard JSON worden gemaakt moet de JSON naar je raspberry worden verzonden of in de directory worden gezet. De standaard JSON is aanwezig in de DaL core software maar er wordt bij het opstarten gekeken of een aangepaste JSON bestaat op de sd kaart.

Dan ben je dus enorm flexibel in het toekennen van benamingen en de kans op fouten aanzienlijk kleiner..


dan hebben we nog het euvel dubbelquote:


De opstartJSON alsook de PropertiesJSON kunnen in de DaL sourcecode geplakt worden. Nu wordt tekst in VB tussen dubbel quotes geplaatst echter JSONS gebruiken ook dubbelquotes in de JSON arrays. Om dit in VB ook te doen moeten er dubbele dubbelquotes worden gebruikt. Snappen jullie het nog? :)

Willie Wortel wijzigde deze reactie 19-03-2018 12:37 (25%)


Acties:
  • +4Henk 'm!
De opstart JSON options pagina is klaar, hier kan je een DaL voorbeeld tekst opstart JSON downloaden. Heb even alle opties aangevinkt om output te creëren, dus zijn de meeste velden leeg.

de opstart JSON in tekst format.

Mocht je twijfelen of de JSON juist is, knip en plak de JSON HIER om te testen.

Alle numerieke invoer is alfa numeriek gemaakt zodat ook tekst ingevoerd kan worden. Alle tekst is aanpasbaar en staat niet meer hard in de code als tekst. Nu nog uittesten.

---

De JSON opmaak die gebruikt wordt in de DaL options.html pagina en op opmaak van je raspberry moeten identiek zijn. Als de opmaak niet identiek is kan DaL niet juist functioneren. Dus verander je wat aan de opmaak, dan MOET deze opmaak naar je raspberry worden verzonden.!
Het zit allemaal heel logisch in elkaar en maakt DaL betrouwbaarder.

Als je VALUES hebt veranderd moet de opmaak ook weggeschreven worden in je raspberryconfig.js bestand. Dus resumé mee, de opmaak moet zowel in je raspberryconfig alsook op de raspberry identiek zijn. Het lijkt overweldigend moeilijk maar is het niet. DaL is wel 10x zo krachtig geworden hiermee.!

En uiteraard worden alle JSONs zowel de opmaak json alsook de configuratie/opstart json gecontroleerd op syntax fouten, onjuiste invoer.

Alle XHR webpagina routines voor wegschrijven en inladen van bestanden op de Raspberry zijn herschreven. Bestanden worden nu in 1x geladen/wegeschreven in plaats van in stukken. Omdat het geheugen van de rasp vele malen groter is dan van een Netduino.



omdat eea nogal complex is zit er een uitgebreide error afhandeling in om het debuggen zo eenvoudig mogelijk te maken, in NOW:


met opzet fout in de opstart JSON: "Smart Meter Parameters", key: "baudrate"

https://tweakers.net/ext/f/CKTtTFVr6m2epgZLTo3i3Noq/full.jpg

goed in het externe bestand:


fout:

dit is trouwens de opstartJSON in de sourcecode.

het nieuwe inlezen ziet er zo uit:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
p = dalProps.GetNamedObject("pvoutputstreams")
name = p.GetNamedString("name")

If startupJSON.ContainsKey(name) Then

   a = startupJSON.GetNamedArray(name)
   
   For Each o In a
      s = New js(o.GetObject, p)
      If s.getBoolean("operate") Then
         With DaL.ProviderStreamsProperties(ct)
            .Stream = s.getString("stream")
            .APIKey = s.getString("apikey")
            .Feed_SystemID = s.getString("systemid")
            .Interval = CInt(s.getValue("interval"))
            .PinOnWrite = parsePinOnWrite(s.getString("pinonwrite"))
            .Task = EnumTasks.sendtoPVOutput
            .TimeFilterID = parseIntStr(s.getString("timerfilter"))
            .CompareFilterID = parseIntStr(s.getString("comparisonfilter"))
         End With
         ct += 1
      End If
   Next
End If

maar echt alles gaat op de schop:


Buiten een gloednieuwe motor zit er een krachtige foutafhandeling in geprogrammeerd zodat het zoeken naar fouten tot een minimum beperkt blijft. Als dit stabiel draait wil ik me gaan toeleggen op nieuwe uitdagingen zoals het touchscreen. Er is BTW een nieuwe Rasberry uit.

De foutmeldingen komen netjes in de errors map met de folder/file datum erin.


ik heb even een functie geschreven die alle JSON invoer nakijkt, vertrouwen is goed maar nakijken is beter. :)
Visual Basic:
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
Private Function checkDalJSONproperties() As Boolean

   Dim errDT As String = "DateTime: " & Date.Now.ToString("dddd, d MMM yyyy - HH:mm:ss") & vbCrLf
   Dim errTxt As String = ""
   Dim err As Boolean = False
   Dim Pe As JsonObject = Nothing

   Try
      If Not JsonObject.TryParse(_Props.Replace("'", """"), Pe) Then
         errTxt = errDT & "can not continue, DaL properties layout JSON is corrupt"
         err = True
         Debug.WriteLine(errTxt)
         appendToFile("Errors", "JSON ", errTxt).Wait()
         Throw New Exception(errTxt)
      End If

      For Each element In Pe
         For Each Keys In element.Value.GetObject
            If Not dalProps.ContainsKey(element.Key) Then
               errTxt = errDT & "DaLpropertiesJSON element: '" & element.Key & "' not found"
               Debug.WriteLine(errTxt)
               appendToFile("Errors", "JSON ", errTxt).Wait()
               err = True
            Else
               If Not dalProps(element.Key).GetObject.ContainsKey(Keys.Key) Then
                  errTxt = errDT & "DaLpropertiesJSON element: '" & element.Key & "' key: '" & Keys.Key & "' not found"
                  Debug.WriteLine(errTxt)
                  appendToFile("Errors", "JSON ", errTxt).Wait()
                  err = True
               Else
                  Dim oName = dalProps.GetNamedObject(element.Key).GetNamedString("name")
                  If startupJSON.ContainsKey(oName) Then
                     For Each o In startupJSON.GetNamedArray(oName)
                        If Keys.Key <> "name" Then
                           If Keys.Value.ValueType = JsonValueType.String Then
                              If Not o.GetObject.ContainsKey(dalProps.GetNamedObject(element.Key).GetNamedString(Keys.Key)) Then
                                 errTxt = errDT & "DaLstartupJSON element: '" & element.Key & "' name: '" & oName & "' element key: '" & Keys.Key & "' not found"
                                 Debug.WriteLine(errTxt)
                                 appendToFile("Errors", "JSON ", errTxt).Wait()
                                 err = True
                              End If
                           End If
                        End If
                     Next
                  End If

                  If Keys.Value.ValueType = JsonValueType.Object Then
                     For Each h In Keys.Value.GetObject
                        If Not dalProps.GetNamedObject(element.Key).GetNamedObject(Keys.Key).ContainsKey(h.Key) Then
                           errTxt = errDT & "DaLpropertiesJSON element: '" & element.Key & "' key: '" & Keys.Key & "'  value: '" & h.Key & "' not found"
                           Debug.WriteLine(errTxt)
                           appendToFile("Errors", "JSON ", errTxt).Wait()
                           err = True
                        Else
                           If startupJSON.ContainsKey(oName) Then
                              Dim oZ = dalProps.GetNamedObject(element.Key).GetNamedObject(Keys.Key)
                              If startupJSON.GetNamedArray(oName)(0).GetObject.ContainsKey(oZ.GetNamedString("name")) Then
                                 If Not startupJSON.GetNamedArray(oName)(0).GetObject.GetNamedArray(oZ.GetNamedString("name"))(0).GetObject.ContainsKey(oZ.GetNamedString(h.Key)) Then
                                    If h.Key <> "name" Then
                                       errTxt = errDT & "DaLstartupJSON '" & oName & "' key '" & oZ.GetNamedString(h.Key) & "' not found"
                                       Debug.WriteLine(errTxt)
                                       appendToFile("Errors", "JSON ", errTxt).Wait()
                                       err = True
                                    End If
                                 End If
                              Else
                                 errTxt = errDT & "DaLstartupJSON '" & oName & "' key '" & oZ.GetNamedString(h.Key) & "' not found"
                                 Debug.WriteLine(errTxt)
                                 appendToFile("Errors", "JSON ", errTxt).Wait()
                                 err = True
                              End If
                           End If
                        End If
                     Next
                  End If
               End If
            End If
         Next
      Next

      If err Then
         errTxt = "Error in JSON probs or startupJSON, can not continue, check your JSON error listfile in map 'Error' on your Raspberry"
         Throw New Exception(errTxt)
      End If

   Catch ex As Exception
      DaL.exeptions.storeExeption("Error in JSON ", ex)
      Debug.WriteLine(errTxt)
   End Try

   Return err

 End Function

zo is de pagina uiteindelijk geworden. Met full na controle in de webpagina alsook in de raspberry om fouten te voorkomen.

Als je nu nog een fout maakt dan kom je in de krant. :)

Stay tuned to this channel for the release of DaL 2.0 Next Generation. *O*

Er is op bij de FlowMeter een extra optie toegevoegd, "flowPerHour", als deze optie ingevuld is wordt de COP berekend met de flowperhour invoer. De diepe gedachte hierachter dat mijn flow redelijk constant 830 liter per uur. Je hebt dan eigenlijk helemaal geen flowmeter nodig maar kan wel aardig de COP van een warmtepomp berekenen volgens de ingebouwde formule.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"FlowMeter" : [
   {
      "ID"                          : "Warmtepomp COP",
      "Operate"                     : true,
      "digital Pin"                 : "D12",
      "kfactor"                     : "",
      "waterFlow per hour"          : 830,
      "Water Temperature IN"        : "Temperatuur sensor DS18B20('WP WaterIN').celcius",
      "Water Temperature OUT"       : "Temperatuur sensor DS18B20('WP WaterUIT').celcius",
      "WP wattage NOW"              : "PulseMeter('WarmtePomp').watts",
      "Interval"                    : 30,
      "pinOnWrite"                  : "PCA9685 RGB pinOnWrite( 'LED' )( '1' )( 'WP flowMeter' )",
      "Timer Filter"                : "",
      "Comparison Filter"           : ""
   }],

Met het nakijken/uittesten van de code stofzuig ik ook alle foutafhandeling schoon. Nu met volledige check, het programma gaat niet verder bij onvolledige ingave, waar ook in het programma. NB: Alle tekst die zichtbaar is in de voorbeeld image kan aangepast worden in de JSON naar eigen wensen.

Je moet er absoluut vanuit kunnen gaan dat de Options webpagina 100% juist is anders kunnen we beter stoppen.

Heb eerst even de WIKI gemoderniseerd, die webpagina stamde nog uit de tijd dat we HTML aan het leren waren, we zijn nu gevorderd ... toch.

Als in de startupJSON een key wordt veranderd (om wat voor reden dan ook) kan deze niet meer worden gevonden. DaL zal dan een foutmelding geven. Aan de hand van de melding kan eenvoudig de fout worden opgelost:

Het is met DaL NG niet meer mogelijk foute invoer te verwerken naar de Raspberry.

Zo kopieer je de startupJSON in je DaL NG source code:


Zo kopieer je de properties en layout JSON in je DaL NG source code:

Je kan alle code uiteraard ook uploaden in een extern bestand.

voorbeeld van foute invoer in de opstartJSON:


zo pas je de eigenschappen aan in je Layout JSON.
Overal in het programma wordt alles aangepast, ook in de WIKI. Een gemuteerde layout JSON moet ook geupload worden naar je raspberry of hardcoded handmatig copy paste.


De DaL versie Next Generation draait vanaf vandaag in mijn Central "hoofd" Raspberry. (dan moet het wel goed zijn 8) )
Wat nu nog te doen,.? ... de dashboard designer aanpassen zodat deze ook de opstartJSON kan lezen.

Willie Wortel wijzigde deze reactie 04-04-2018 11:57 (149%)

Het is tijd voor de eerste versie van DaL NG.

Er zijn 2 opties voor het installeren van DaL NG op de Raspberry:
1- via de source code (wat ik alleen zou doen als ik wat te programmeren had)
2- met het bijgeleverde package installer. Howto?:

start je Raspberry met WIndows 10 IOT (Internet Of Things) OPEN je DASHBOARD.
ga naar APPS\APP MANAGER klik o ADD


Dan zie je dit:


ga naar de map ..\DaL_JSON_Executable\DaL_2.0.0.0 en klik op je apppxbundle

NB: ALS je al een DaL hebt geïnstalleerd, De-installeer deze versie voordat je een nieuwe installeer.

DaL kan je programmeren vanuit de OPTIONS webpagina en staat in je DaL webpagina's map:
..\DaL_NG\Raspberry_DaL_WEBpages\DALwebpages\Pages\OPTIONS.html
Met de WiKi in dezelfde map kan je kennis opdoen.

Deze versie van DaL NG is met zorg geschreven en degradeert alle andere logging software tot kinderspeelgoed maar zorg indien je met een vorige versie van DaL werkt dat je van alles een backup hebt zodat je altijd naar de vorige versie terug kan.


De komende 2 mnd ben ik hier te vinden. 8)

Acties:
  • +2Henk 'm!
@klump4u kijk hier eens naar, speciaal voor jou:

Range, -30 tot +30 dagen





Nu hoef je niet meer in de sourcecode te rommelen. :)

Willie Wortel wijzigde deze reactie 15-05-2018 09:43 (8%)

Pagina: 1 2


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True