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
sluiten

Laatste kans om te stemmen voor de Tweakers Awards 2019/2020!

Dit jaar organiseert Tweakers alweer voor de dertiende keer de Tweakers Awards, de publieksprijs voor de beste technologie- en elektronicaproducten. Laat je stem gelden en maak kans op een Google Stadia Premiere Edition, Nintendo Switch inclusief Mario Kart of een setje Sony WF-1000XM3 in-ear oordoppen.

Stemmen


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
jmeinders schreef op zondag 30 juni 2019 @ 23:38:
Ik heb al jaar en dag de 74ls04p hex schmitt-trigger met een weerstand van 1k ohm aangesloten op pin 1 en pin 14 van de ic, en nooit problemen me gehad. deze werkt goed op 3 fase meter DSMR 4.2 , DSMR 5.0 en 1fase meter 2.xx zover ik weet. Is de kabel verbinding goed,soldeer goed?
Die IC heb ik ook altijd erop gehad, ook nooit problemen gehad totdat ik de 3-fase meter kreeg, een paar post hierboven zie je een output van een telegram van de 3-fase meter, deze begint nu bij het / teken zoals het hoort, had ik de Pi2 eraan hangen dan zat er nog data voor het / teken, welke Pi draai jij dan?
Ik heb nu een Pi3B+ eraan hangen.

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


Acties:
  • 0Henk 'm!

  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

klump4u schreef op maandag 1 juli 2019 @ 09:30:
[...]

Welke Pi draai jij dan?
Ik heb nu een Pi3B+ eraan hangen.
Ik heb de PI3B met software 17763.557.

Omnik 3.0 15 Eging panelen 195wp


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
jmeinders schreef op maandag 1 juli 2019 @ 09:47:
[...]


Ik heb de PI3B met software 17763.557.
Ik de insiders core 17763.1
We zullen het even afwachten.

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


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
En vannacht weer fout, P1 in een loop.

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


Acties:
  • 0Henk 'm!
@klump4u heb je ook al geprobeerd om de datalijn een lagere weerstand te geven?

Acties:
  • 0Henk 'm!

  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

@klump4u Ik denk ook mee, probeer weerstand 10k.
EMSR 5.0 baute rate 115200
data bits 8
parity none
stop bits 1

Omnik 3.0 15 Eging panelen 195wp


  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op dinsdag 2 juli 2019 @ 22:11:
@klump4u heb je ook al geprobeerd om de datalijn een lagere weerstand te geven?
Gaan we proberen.
@jmeinders ga ik ook proberen.

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
Alles geprobeerd, hogere, lagere, geen weerstand, beide IC’ s uit de wiki. Andere schema’s van internet met een BC 547 transistor, allemaal hetzelfde resultaat. Geen telegram wat begint met een / teken en eindigt op de regel waar het ! staat.
Het probleem is volgens mij dat de meter iedere seconden een telegram uitspuugt en dat dit niet goed door de software wordt afgehandeld na verloop van tijd.

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


Acties:
  • +1Henk 'm!
@klump4u Ik begrijp dat je er moedeloos van wordt …...maar je telegram niet eindigt met een !, Je telegram eindigt met een ! + hex getal. Het belangrijkste is dat je meter periodiek je telegram blijft versturen en het ontvangen niet na verloop van tijd stopt, dat is mij ook overkomen.

Lijkt me trouwens stug dat de software de boosdoener is. De software kan 24/7 onafgebroken data ontvangen en zal nooit stoppen omdat het meer of sneller data ontvangt dus daar moet je het niet zoeken. Als je het niet vertrouwt kan je ook een externe UART aansluiten via USB. DEnk dat het eerder de IC is die de pijp aan maarten geeft, wordt de IC niet warm?

Wel zal ik kijken of ik een routine in C++ kan schrijven die het inverten vervangt zodat de meter direct op de Rasp aangesloten kan worden. Het is geen rocket sience, denk dat ik daar veel mensen blij mee maakt. Maaar uhhhh er ligt nog 12 kuub zand voor de deur dus ik ga nog een uurtje kruien.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op woensdag 3 juli 2019 @ 19:31:
@klump4u Ik begrijp dat je er moedeloos van wordt …...maar je telegram niet eindigt met een !, Je telegram eindigt met een ! + hex getal. Het belangrijkste is dat je meter periodiek je telegram blijft versturen en het ontvangen niet na verloop van tijd stopt, dat is mij ook overkomen.

Lijkt me trouwens stug dat de software de boosdoener is. De software kan 24/7 onafgebroken data ontvangen en zal nooit stoppen omdat het meer of sneller data ontvangt dus daar moet je het niet zoeken. Als je het niet vertrouwt kan je ook een externe UART aansluiten via USB. DEnk dat het eerder de IC is die de pijp aan maarten geeft, wordt de IC niet warm?

Wel zal ik kijken of ik een routine in C++ kan schrijven die het inverten vervangt zodat de meter direct op de Rasp aangesloten kan worden. Het is geen rocket sience, denk dat ik daar veel mensen blij mee maakt. Maaar uhhhh er ligt nog 12 kuub zand voor de deur dus ik ga nog een uurtje kruien.
Zou zeker de IC kunnen zijn ware het niet dat ik er al 4 getest heb.
Het telegram eindigt met een regel die begint met een ! teken inderdaad maar bij mij krijg er weer enkele regels achteraan.
Het rare vindt ik dat hij het 1 of anderhalve dag doet en dan blijft de P1 loop error iedere 5 seconden lopen en komt er niks meer binnen, de rest zoal S0 of onewire loopt gewoon door. Ook de error data loopt dan snel op omdat er ieder 5 seconden een fout word weg geschreven.
Wat het is weet ik niet maar ik heb het op de Pi3B+ en op de Pi2.

Wat ga je maken met al dat zand?

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
Vannacht weer de P1 in een loop, 6 dagen gelopen. Ik weet het niet meer.

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


  • UTMachine
  • Registratie: juli 2000
  • Laatst online: 09:18
Willie Wortel schreef op woensdag 3 juli 2019 @ 19:31:
@klump4u Ik begrijp dat je er moedeloos van wordt …...maar je telegram niet eindigt met een !, Je telegram eindigt met een ! + hex getal. Het belangrijkste is dat je meter periodiek je telegram blijft versturen en het ontvangen niet na verloop van tijd stopt, dat is mij ook overkomen.
Sorry als ik er middenin springt (en de plank misslaat), maar '! + hex' is een valide telegram. In DSMR 4/5 staat er achter de '!' altijd 4 characters, welke een CRC16 is. In het laatste plaatje van @klump4u is het telegram correct, alleen lijkt het einde niet goed gedecteerd te zijn.
klump4u schreef op woensdag 10 juli 2019 @ 07:07:
Vannacht weer de P1 in een loop, 6 dagen gelopen. Ik weet het niet meer.
de data krijgt de software toch echt van de IC, als de data niet juist is wordt dit afgevangen door de fout afhandeling routine. Er is duidelijk iets wat niet goed samenwerkt tussen je slimme meter en de rest.

Maar 6 dagen is al meer dan de 1 a 2 dagen die je eerder meldde.

Zelf heb ik een splitter gekocht om ook mijn test omgeving van signaal te voorzien. Zal als ik weer tijd heb er dieper in duiken. Maar is moeilijk want bij mij functioneert alles.

Een telegram opent met een slash / en eindigt met een !+hex En de software verzint niks, krijgt alles aangeboden van de IC.

Klump het zand had ik nodig om de tuin op te hogen, bij mij zakt de tuin zo een centimeter per jaar.
Straks bezig met een extra kamer om te toveren tot inloopkast en dat is veel timmerwerk. Gisteren een nieuw meranti kozijn geplaatst met 2 openslaande en 1 vast raam, en volgende week de shutters voor de ramen. Dan is het vrouwtje helemaal heppie de peppie. :)

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Mijn telegram eindigt nooit op de !+ hex
Het zijn altijd enkele regels erna.
Er komt op een gegeven moment geen goed telegram binnen en dan geeft hij iedere 5 seconden de error P1 loop, lijkt me sterk dat het dan fout blijft gaan maar blijkbaar wel, doe ik een reboot dan is het weer goed

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

@klump4u ik heb voor jou een herschreven versie van de slimme meter uitlezen.


ik heb het bij mezelf getest en werkt naar behoren.
Getest met een 40106, 5v op de vrijgave zonder weerstand, 1k weerstand op de datadraad. Dus in totaal 1 weerstand. Ben benieuwd want het draait bij mij niet in mijn hoofd rasp.

Willie Wortel wijzigde deze reactie 10-07-2019 20:42 (4%)


Acties:
  • +1Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op woensdag 10 juli 2019 @ 13:24:
@klump4u ik heb voor jou een herschreven versie van de slimme meter uitlezen.

https://we.tl/t-qgnvtKT6c6

ik heb het bij mezelf getest en werkt naar behoren.
Getest met een 40106, 5v op de vrijgave zonder weerstand, 1k weerstand op de datadraad. Dus in totaal 1 weerstand. Ben benieuwd want het draait bij mij niet in mijn hoofd rasp.
Ga hem proberen, alvast bedankt.

edit

Telegram nog steeds hetzelfde.
Begint wel mooi bij de \, maar stopt niet bij de regel met de !+hex

klump4u wijzigde deze reactie 10-07-2019 19:38 (20%)

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

klump4u schreef op woensdag 10 juli 2019 @ 16:11:
[...]

Ga hem proberen, alvast bedankt.

edit

Telegram nog steeds hetzelfde.
Begint wel mooi bij de \, maar stopt niet bij de regel met de !+hex

[Afbeelding]
Dat maakt niet uit, hij moet gewoon door blijven lopen zonder storing maar dat weet je nu nog niet.
Kijk ook even of het uitmaakt als je de Delay naar 400 msec terugbrengt ipv 1000 omdat jou telegram elke seconde komt.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op woensdag 10 juli 2019 @ 20:21:
[...]

Dat maakt niet uit, hij moet gewoon door blijven lopen zonder storing maar dat weet je nu nog niet.
Kijk ook even of het uitmaakt als je de Delay naar 400 msec terugbrengt ipv 1000 omdat jou telegram elke seconde komt.
Welke Delay?

code:
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
               DaL.p1Now.ConsumptionNowFase1 = parceValue(DaL.p1Fix.consumptionNowFase1PreFix, DaL.p1Fix.consumptionNowFase1PostFix, DaL.p1Now.ConsumptionNowFase1)
                        DaL.p1Now.ConsumptionNowFase2 = parceValue(DaL.p1Fix.consumptionNowFase2PreFix, DaL.p1Fix.consumptionNowFase2PostFix, DaL.p1Now.ConsumptionNowFase2)
                        DaL.p1Now.ConsumptionNowFase3 = parceValue(DaL.p1Fix.consumptionNowFase3PreFix, DaL.p1Fix.consumptionNowFase3PostFix, DaL.p1Now.ConsumptionNowFase3)

                    End If


                    Task.Delay(100).Wait()

                    WritePin(DaL.P1config.pinOnWrite, False)

                    '* Every time the day will change, reset the historic vars  * 
                    '* and start the new day with daily totals on zero.         * 
                    isHistoric()

                End If

                Task.Delay(1000).Wait()

            Catch ex As Exception

                DaL.exeptions.storeExeption("error in P1 loop", ex)
                Task.Delay(5000).Wait()

            End Try
        Loop

    End Sub

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

de 1000 veranderen in 400 of nog sneller 300

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op woensdag 10 juli 2019 @ 20:41:
de 1000 veranderen in 400 of nog sneller 300
Maar dan leest hij iedere seconden een telegram toch?

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

ja, het is maar even om te testen.... maar dan weet je in ieder geval dat je een heel telegram binnen krijg, als dan iedere seconde de checksum veranderd dan weet je ook dat het telegram iedere seconde verstuurd wordt, ik heb dat niet terug kunnen lezen in de pdf van de meter.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Oke, morgen verder, bedje roept.

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


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Hij heeft 4 dagen en 8 uur gelopen zonder enige error in de log en dan houd hij op met de P1 uitlezen, ieder 5 seconden een error melding in de log, doe ik een reboot dan gaat hij gewoon weer verder met het uitlezen van de P1 en de rest.
Kan er in de P1port_SmartMeter.vb niet iets gezet worden dat als b.v. 10 keer achter elkaar een P1Error is de raspberry dan automatisch zichzelf reboot?
Ik test nog wel verder maar het is bijna vakantietijd en dan kan ik niet bij de Pi komen.

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


Acties:
  • 0Henk 'm!
@klump4u De Raspberry krijgt zijn signaal van de IC, als de IC onzin geeft dan gaat de fout afhandeling werken. De fout zit echt bij de IC en slimme meter. Je vraag naar een reset bij 10x aaneengesloten een fout, ja dat kan ,

Zoek de volgende code in P1...….
schrijf : dim mustReset …… BOVEN do while …..


code:
1
2
3
Dim mustReset As Integer = 0

        Do While True



schrijf :

schrijf in de catch …...

code:
1
2
3
4
5
Catch ex As Exception
                mustReset += 1
                If mustReset = 10 Then
                    Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(1))
                End If

Willie Wortel wijzigde deze reactie 14-07-2019 18:56 (53%)


Acties:
  • +1Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel

Ik neem aan in P1port_SmartMeter.vb?

code:
1
2
3
4
5
6
7
8
9
10
11
Dim dataReaderObject As DataReader = New DataReader(_serialDevice.InputStream) With {
            .InputStreamOptions = InputStreamOptions.None
        }

        Do While True

            Try
                Const BUFFER As Integer = 1024
                Await dataReaderObject.LoadAsync(BUFFER).AsTask()

                If dataReaderObject.UnconsumedBufferLength > 0 Then



Wordt dan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim dataReaderObject As DataReader = New DataReader(_serialDevice.InputStream) With {
            .InputStreamOptions = InputStreamOptions.None
        }

Dim mustReset As Integer = 0

        Do While True

            Try
                Const BUFFER As Integer = 1024
                Await dataReaderObject.LoadAsync(BUFFER).AsTask()

                If dataReaderObject.UnconsumedBufferLength > 0 Then




en
code:
1
2
3
4
5
6
7
8
9
10
11
                End If

                Task.Delay(8600).Wait()

            Catch ex As Exception

                DaL.exeptions.storeExeption("error in P1 loop", ex)
                Task.Delay(5000).Wait()

            End Try
        Loop



Wordt dan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
                End If

                Task.Delay(8600).Wait()

            Catch ex As Exception

            mustReset += 1
                If mustReset = 10 Then
                    Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(1))
                End If

                DaL.exeptions.storeExeption("error in P1 loop", ex)
                Task.Delay(5000).Wait()

            End Try
        Loop

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


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Ga ik morgen proberen dan.
Ik wil niet zeuren maar heb vanavond op de oude pi2 raspi stretch gezet en op de seriële poort een 40106 IC aangesloten, deze aan de slimme meter gehangen en in Putty uitgelezen, iedere seconden een mooi telegram met / aan het begin en de !+hex op het eind, hoe ziet jullie telegram eruit @Willie Wortel en @jmeinders ?

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


Acties:
  • +1Henk 'm!

  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

@klump4u Deze is van mij.

Omnik 3.0 15 Eging panelen 195wp


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Zo hoort hij dus te zijn, die van mij geeft dus altijd enkele regels extra, wat heb jij bij de prefix en Postfix in de optionspagina bij het gas?

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


Acties:
  • 0Henk 'm!

  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

klump4u schreef op zondag 14 juli 2019 @ 22:00:
[...]

Zo hoort hij dus te zijn, die van mij geeft dus altijd enkele regels extra, wat heb jij bij de prefix en Postfix in de optionspagina bij het gas?
prefix = S)(
Postfix = *m3)
Alleen als het weer wintertijd wordt moet ik hem handmatig op W)( zetten :-(

Omnik 3.0 15 Eging panelen 195wp


Acties:
  • 0Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
jmeinders schreef op zondag 14 juli 2019 @ 22:19:
[...]


prefix = S)(
Postfix = *m3)
Alleen als het weer wintertijd wordt moet ik hem handmatig op W)( zetten :-(
Dat heb ik ook bij pre en post.

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

bij mij komt ook het telegram naar behoren. Maak je routine eens sneller door een kortere delay, doordat je telegram elke seconde wordt gegeven, misschien biedt dat soelaas of een ander type IC, 74HC04 of een andere. Voorbeelden te over.

het veranderen in seizoenen gebeurd automatisch, de variabele was niet ingegeven welke veranderd moet worden. Is aangepast. Zelf heb ik geen gas.


code:
1
2
3
4
5
6
7
If DaL.p1Now.ConsumedGas <= 0 Then
   If DaL.p1Fix.ConsumedGasPreFix.IndexOf("S") > -1 Then
      DaL.p1Fix.ConsumedGasPreFix = DaL.p1Fix.ConsumedGasPreFix.Replace("S", "W")
   ElseIf DaL.p1Fix.ConsumedGasPreFix.IndexOf("W") > -1 Then
      DaL.p1Fix.ConsumedGasPreFix = DaL.p1Fix.ConsumedGasPreFix.Replace("W", "S")
   End If
End If

Willie Wortel wijzigde deze reactie 15-07-2019 09:59 (4%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Delay op 300 gezet en dit is het telegram:


Iedere seconden een andere !+hex
verschillende IC's ook al geprobeerd.

edit,
Delay terug naar 10000 gezet, code aangepast met de reboot optie van enkele post hierboven.

klump4u wijzigde deze reactie 15-07-2019 10:24 (15%)

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


Acties:
  • +1Henk 'm!
@klump4u voorop gesteld dat dit een lokaal probleem is, …. de reset is natuurlijk geen oplossing, dan had je net zo goed een Netduino kunnen houden. :)

Er is nog een andere oplossing: bij het niet meer ontvangen van een goed signaal (daar gaan we vanuit) de gehele serial routine software matig de vuilnisbak in en alles opnieuw initialiseren/inlezen. Dat heb ik nu geschreven maar moet nu weg en kan het niet testen. Kom hier op terug.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op dinsdag 16 juli 2019 @ 08:01:
@klump4u voorop gesteld dat dit een lokaal probleem is, …. de reset is natuurlijk geen oplossing, dan had je net zo goed een Netduino kunnen houden. :)

Er is nog een andere oplossing: bij het niet meer ontvangen van een goed signaal (daar gaan we vanuit) de gehele serial routine software matig de vuilnisbak in en alles opnieuw initialiseren/inlezen. Dat heb ik nu geschreven maar moet nu weg en kan het niet testen. Kom hier op terug.
Ik wacht het af, heb nog geen reset gehad dus weet ook niet of dat werkt.

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


Acties:
  • +2Henk 'm!

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Vanmorgen een P1 loop, ik zie in de error log 11 meldingen en daarna heeft hij zichzelf gereset en loopt nu weer vrolijk. Heb ik die stress tenminste niet als ik op vakantie ben ;)

klump4u wijzigde deze reactie 17-07-2019 13:34 (17%)

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

@klump4u wanneer ga je op vakantie? Want als je nog genoeg tijd hebt kan jij de nieuwe code testen, ten slotte gaat het programma bij jou in de stress. Dan zet ik het voor je online.

Dan moet dit stukje code zijn werk doen. (ter inzage)

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
    Private Async Function initSerialDevice() As Task

        If _serialDevice IsNot Nothing Then
            _serialDevice.Dispose()
        End If

        If dataReaderObject IsNot Nothing Then
            dataReaderObject.Dispose()
        End If

        Dim aqs As String = SerialDevice.GetDeviceSelector()
        Dim allCOMMdevices As DeviceInformationCollection = Await DeviceInformation.FindAllAsync(aqs)

        Try
            Dim s As Integer = DaL.P1config.commPort.Split(" ")(1)
            _serialDevice = Await SerialDevice.FromIdAsync(allCOMMdevices(s).Id)
        Catch ex As Exception

            Dim errTxt As String = "Er zit een fout in selectie communicatie port"
            appendToFile("Errors", "Startup ", errTxt & vbCrLf & ex.Message & vbCrLf & ex.StackTrace).Wait()
            DaL.exeptions.storeExeption(errTxt, ex)
            Exit Function
        End Try

        For t As Integer = 0 To allCOMMdevices.Count - 1
            Debug.WriteLine(t & " -  " & allCOMMdevices(t).Id)
        Next

        _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

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

    End Function


  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op donderdag 18 juli 2019 @ 07:28:
@klump4u wanneer ga je op vakantie? Want als je nog genoeg tijd hebt kan jij de nieuwe code testen, ten slotte gaat het programma bij jou in de stress. Dan zet ik het voor je online.

Dan moet dit stukje code zijn werk doen. (ter inzage)

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
    Private Async Function initSerialDevice() As Task

        If _serialDevice IsNot Nothing Then
            _serialDevice.Dispose()
        End If

        If dataReaderObject IsNot Nothing Then
            dataReaderObject.Dispose()
        End If

        Dim aqs As String = SerialDevice.GetDeviceSelector()
        Dim allCOMMdevices As DeviceInformationCollection = Await DeviceInformation.FindAllAsync(aqs)

        Try
            Dim s As Integer = DaL.P1config.commPort.Split(" ")(1)
            _serialDevice = Await SerialDevice.FromIdAsync(allCOMMdevices(s).Id)
        Catch ex As Exception

            Dim errTxt As String = "Er zit een fout in selectie communicatie port"
            appendToFile("Errors", "Startup ", errTxt & vbCrLf & ex.Message & vbCrLf & ex.StackTrace).Wait()
            DaL.exeptions.storeExeption(errTxt, ex)
            Exit Function
        End Try

        For t As Integer = 0 To allCOMMdevices.Count - 1
            Debug.WriteLine(t & " -  " & allCOMMdevices(t).Id)
        Next

        _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

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

    End Function

Laat je de reset erin of niet, ben tot dinsdag nog thuis.

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

@klump4u Ik heb het zo geschreven dat eerst tot 10 pogingen gedaan wordt om de serial device nieuw leven in te blazen en anders reboot. Kijk of het werkt en anders terug naar je huidige versie.

https://we.tl/t-qI6yXdHQLh

hier een stukje van de code:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Catch ex As Exception

                'we hebben een fout ontdekt, we verhogen de mustReset met 1 en bij 10 rebooten we
                mustReset += 1
                If mustReset = 10 Then
                    DaL.exeptions.storeExeption("error in P1 loop, we gaan rebooten", ex)
                    Task.Delay(2000).Wait()
                    Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(1))
                End If

                'er is een fout ontdekt, we gaan kijken of opnieuw initialiseren soelaas biedt, zo niet dan rebooten na 10 pogingen
                Task.Delay(2000).Wait()
                DaL.exeptions.storeExeption("error in P1 loop, we gaan de SerialDevice opnieuw initialiseren", ex)
                initSerialDevice().Wait()
                Task.Delay(2000).Wait()

            End Try



Ik heb niet kunnen testen!

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op donderdag 18 juli 2019 @ 18:47:
@klump4u Ik heb het zo geschreven dat eerst tot 10 pogingen gedaan wordt om de serial device nieuw leven in te blazen en anders reboot. Kijk of het werkt en anders terug naar je huidige versie.

https://we.tl/t-qI6yXdHQLh

hier een stukje van de code:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Catch ex As Exception

                'we hebben een fout ontdekt, we verhogen de mustReset met 1 en bij 10 rebooten we
                mustReset += 1
                If mustReset = 10 Then
                    DaL.exeptions.storeExeption("error in P1 loop, we gaan rebooten", ex)
                    Task.Delay(2000).Wait()
                    Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(1))
                End If

                'er is een fout ontdekt, we gaan kijken of opnieuw initialiseren soelaas biedt, zo niet dan rebooten na 10 pogingen
                Task.Delay(2000).Wait()
                DaL.exeptions.storeExeption("error in P1 loop, we gaan de SerialDevice opnieuw initialiseren", ex)
                initSerialDevice().Wait()
                Task.Delay(2000).Wait()

            End Try



Ik heb niet kunnen testen!
Ik heb hem erop gezet, hou je op de hoogte.
Wordt er wel telkens al er iets gebeurt naar de ERROR log geschreven?

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

@klump4u ja er wordt naar de log geschreven, zowel bij de reset alsook bij opnieuw initialiseren. Ik ben ook benieuwd wat er gebeurd. Denk wel dat dit soelaas biedt.

bij reboot:
DaL.exeptions.storeExeption("error in P1 loop, we gaan rebooten", ex)

bij init:
DaL.exeptions.storeExeption("error in P1 loop, we gaan de SerialDevice opnieuw initialiseren", ex)

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Hij doet nu niks bij een P1 loop.
De Pi loopt gewoon door, als ook DAL, er is geen reboot geweest maar de P1 wordt niet meer uitgelezen.
Er is maar een error melding in de log op de SD.

code:
1
2
3
4
5
DateTime: Sunday, 21 Jul 2019 - 22:58:33
Detail: error in P1 loop, we gaan de SerialDevice opnieuw initialiseren
Message: No mapping for the Unicode character exists in the target multi-byte code page. No mapping for the Unicode character exists in the target multi-byte code page. 
Stack: at Windows.Storage.Streams.DataReader.ReadString(UInt32 codeUnitCount) at StartupDaL.ReadSerialP1poort.VB$StateMachine_6_readOutP1port.MoveNext()
Type: System.ArgumentOutOfRangeException



Laatste telegram is van 12 seconden voor de foutmelding

code:
1
2
3
Command Now on: 7/22/2019 4:50:06 PM

LastTimeReceivedTelegram: 7/21/2019 10:58:21 PM

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

@klump4u Je IC geeft niet meer de juiste data door aan je communicatie port. Je IC geeft zoals dat heet non-valid tekens door die niet leesbaar zijn, de tekens die doorgegeven worden komen niet voor in de uni-char tabel.
Waarom deze storing plaatsvind weet ik niet maar is bij jou begonnen toen er een nieuwe meter werd geïnstalleerd. Software matig zijn de oplossingen uitgeput.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op maandag 22 juli 2019 @ 20:39:
@klump4u Je IC geeft niet meer de juiste data door aan je communicatie port. Je IC geeft zoals dat heet non-valid tekens door die niet leesbaar zijn, de tekens die doorgegeven worden komen niet voor in de uni-char tabel.
Waarom deze storing plaatsvind weet ik niet maar is bij jou begonnen toen er een nieuwe meter werd geïnstalleerd. Software matig zijn de oplossingen uitgeput.
Tja is jammer, ik zet de vorige P1 met de software reboot erop en kijk na de vakantie wel verder wat ik ermee ga doen, bedankt voor het mee denken.

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
De satelite raspberry werk dat ook nog voor de P1 poort? Ik krijg het niet voor elkaar.

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

klump4u schreef op maandag 19 augustus 2019 @ 17:43:
@Willie Wortel
De satelite raspberry werk dat ook nog voor de P1 poort? Ik krijg het niet voor elkaar.
Die optie stamt nog uit de tijd van de Netduino en is nooit meer wat mee gedaan. Zal eens kijken of het nog werkt.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op dinsdag 20 augustus 2019 @ 08:14:
[...]

Die optie stamt nog uit de tijd van de Netduino en is nooit meer wat mee gedaan. Zal eens kijken of het nog werkt.
Is misschien handig om de P1 apart te loggen op een Pi maar wel de data te hebben op de andere ivm de LCD

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

klump4u schreef op dinsdag 20 augustus 2019 @ 09:16:
[...]

Is misschien handig om de P1 apart te loggen op een Pi maar wel de data te hebben op de andere ivm de LCD
Ik heb even moeten zoeken waarom de P1 load data from raspberry niet meer werkte. Dit heeft te maken met aangescherpte beveiliging cross origin waar al eerder over geschreven was maar met "Access-Control-Allow-Origin: *" in de header is dit opgelost.
Wel is het zo dat in de oude code de 3fase code niet is herschreven, dat heb ik nu wel gedaan.

Ook is me opgevallen dat bij het opnieuw opstarten de oude waarden niet worden weergegeven. Heb ik nu herschreven voor de raspberry moet uitgetest worden.

Als ik nu tijd heb ga ik beginnen aan het (voor mij) DSMR 5.0 mysterie. Waarom krijg ik geen data als ik geen inverter IC gebruik, dus onzichtbaar voor het serial device. Daarvoor heb ik mijn oscilloscoop afgestoft.

Hiermee kan ik het signaal vangen in het moment zeg maar.


voor mezelf ben nl altijd mijn aantekeningen aan het zoeken:
dataRequest line 500 ohm (10 mA) bij 5v (max cc) range (4~5.5v)
dataLine pullUp 1000 ohm (1k) (5 mA) bij 5v (max cf)
gemeten high 4.81 ~ 4.88 v, low 0.02 ~ 0.07 v
pin1 P1 5.01v 0.01




specs:

met deze specs in de hand zijn er weinig geheimen.
onderzoek gebaseerd op dit netbeheernederlandPDF:

En idd :
The Metering System must send its data to the OSM device every single second and the transmission of the entire P1 telegram must be completed within 1s.

6.3 End of transmission The data transmission is complete after the data message has been transmitted by the Metering System. An acknowledgement signal is not provided for.

en zoek de verschillen in de slimme meters
- power supply in 4.2 = 100 mA in 5.0 = 250 mA
- interval send data over dataLine in 4.2 = 10secs in 5.0 = 1sec
- Instantaneous voltage per phase (mooi mooi mooi) wordt in de nieuwe versie DaL toegevoegd.

een cd401 IC mag de ongebruikte ingangen niet floating (ongebruikt) zijn en moeten verbonden zijn met GND. punt 11.1 in pdf

te vinden in DIT pdf

Willie Wortel wijzigde deze reactie 25-08-2019 10:04 (75%)

@klump4u weet jij nog welke versie oude meter je had en heb je de specs pdf daarvan.? Ik probeer achter de oorzaak van de storing te komen zonder in het blind met hagel te schieten zeg maar. Door onderzoek krijg je ook een beter onderbouwde oplossing. Ik bedoel. een computer verzint niets en een storing komt niet vanzelf.

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Mijn meter was een een-fase Kamstrup 162JxC met DSMR versie 2.2 van Enexis

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

@klump4u Zo staat het nu te draaien op mijn test Rasp:



pullUp van 3.3v

En het mysterie waarom ik geen data kreeg was omdat de baudrate verkeerd stond. 8)

Willie Wortel wijzigde deze reactie 26-08-2019 10:41 (42%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op maandag 26 augustus 2019 @ 10:30:
@klump4u Zo staat het nu te draaien op mijn test Rasp:

[Afbeelding]

pullUp van 3.3v

En het mysterie waarom ik geen data kreeg was omdat de baudrate verkeerd stond. 8)
En wat is hier het voordeel van?
Werkt het bij jou?

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

klump4u schreef op maandag 26 augustus 2019 @ 12:43:
[...]

En wat is hier het voordeel van?
Werkt het bij jou?
tuurlijk werkt het bij mij. Heb het een dag laten draaien.
Zelf heb ik met de oude situatie geen problemen maar als ik een nieuw bordje soldeer dan is het volgens het laatste schema. Het voordeel is dat de meter de dataRequest voedt met zijn eigen stroom. Dat kan met meters vanaf de 4.2 versie. Daarnaast is op de dataline een 3.3v geplaatst wat meer aansluit op een Raspberry die niet goed tegen 5v op de gpio pins kan. Tenslotte is de comm poort ook een verbouwde gpio pin. En als laatste de GND op alle niet gebruikte converter ingangen wat het klapperen ondervangt zeg maar. Het is in ieder geval het meest doordachte schema. Probeer het zou ik zeggen en hopelijk dat dan je periodieke storingen voorbij zijn want als je non ascii code binnenkrijgt (waarop foutmelding volgt) dan wordt je signaal niet meer geïnverteerd door de IC.

in jou geval kan je natuurlijk ook de pin 1 naar pin 2 laten vervallen en pin 2 voeden via de Rasp.

Willie Wortel wijzigde deze reactie 29-08-2019 08:47 (4%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op donderdag 29 augustus 2019 @ 08:27:
[...]

tuurlijk werkt het bij mij. Heb het een dag laten draaien.
Zelf heb ik met de oude situatie geen problemen maar als ik een nieuw bordje soldeer dan is het volgens het laatste schema. Het voordeel is dat de meter de dataRequest voedt met zijn eigen stroom. Dat kan met meters vanaf de 4.2 versie. Daarnaast is op de dataline een 3.3v geplaatst wat meer aansluit op een Raspberry die niet goed tegen 5v op de gpio pins kan. Tenslotte is de comm poort ook een verbouwde gpio pin. En als laatste de GND op alle niet gebruikte converter ingangen wat het klapperen ondervangt zeg maar. Het is in ieder geval het meest doordachte schema. Probeer het zou ik zeggen en hopelijk dat dan je periodieke storingen voorbij zijn want als je non ascii code binnenkrijgt (waarop foutmelding volgt) dan wordt je signaal niet meer geïnverteerd door de IC.

in jou geval kan je natuurlijk ook de pin 1 naar pin 2 laten vervallen en pin 2 voeden via de Rasp.
Zal ik eens gaan proberen misschien dat dit help, heb je wel nog tijd gehad om naar de satelite raspberry te kijken voor de P1 poort?

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Nieuwe schema ook geprobeerd maar hetzelfde euvel, willekeurig een resetten van de pi en geen mooi telegram als ik ip:poort/telegram doe in de browser.
Ik ga de P1 van de Pi afhalen denk ik en ga deze dan maar via Domoticz of iets anders loggen naar Pvoutput en Mindergas, jammer maar het is niet anders.

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

Ha klump, ik ben niet in het land en heb beperkt internet. Je moet gewoon doen met loggen wat je het beste lijkt. Maakt niet uit met welk programma als je maar je data bi nnen krijg. Verder, je kan kijken of een extern uart USB soelaas biedt of en ander type ic zonder s trigger omdat die veel gevoeliger zijn. Daarnaast kan je de 5v van je slimme meter ook gebruiken voor je data lijn. En verder , haal de de delay eens uit je software zodat de sm elke seconde update.

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
die stappen heb ik al allemaal geprobeerd, net nog eens met een bc547, nieuwe smitt trigger, ik heb deze versies ook allemaal op de pi2 gedraaid maar dan met raspberry software en daar gaat het allemaal wel goed, d.w.z. ik krijg bij alle versie een mooi en volledig telegram.
het enige wat ik nog niet heb geprobeerd is een Pi3, ik heb nu de pi3B+ draaien, een pi3 heb ik niet dus als ik een keer er een kan uithalen ergens dan probeer ik dat nog, voor nu maar de pi3B+ met willekeurige herstart.

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

Een mooi en volledig telegram is maar 1 regel toevoegen aan je code. Dat is niet het issue wat wel is waarom je RaspBerry er periodiek mee stopt. Er is niets zo moeilijk programmeren als iets wat je niet hebt. Je gaat naar je garage met een mankement en aldaar is niets te vinden. :) en je hebt ook een USB uart geprobeerd las ik..

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
USB uart heb ik niet geprobeerd nee, de rest wel allemaal, het is alleen bij mij ja, ik heb een dsmr 5.0 met 1 seconden update, dat heeft nog niemand anders getest of geprobeerd, jullie hebben allemaal een P1 die met 10 seconden een telegram geeft, ik neem aan dat je aan een mooi en volledig telegram kunt zien of het goed gaat of niet. He maakt niet uit welke ic ik ook erop zet op de PI3B+ of op de Pi2 de telegrammen zien er hetzelfde uit, hiervoor met de DSMR 2.2 versie meter liep de Pi 150 dagen aan een stuk. Ik kan er verder ook niks van maken of bedenken, ik zal een USB uart bestellen op Ebay en zal dan wel weer wat laten horen.

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

@klump4u bij het herconfigureren kan je de baudrate juist casten. Dit is de nieuwe regel dan.... _serialDevice.BaudRate = CUInt(DaL.P1config.Baudrate) We kunnen beter niets aan het toeval laten.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op dinsdag 17 september 2019 @ 20:46:
@klump4u bij het herconfigureren kan je de baudrate juist casten. Dit is de nieuwe regel dan.... _serialDevice.BaudRate = CUInt(DaL.P1config.Baudrate) We kunnen beter niets aan het toeval laten.
Moet dit in de sourcecode komen?
Ik heb een Pi3B besteld, kijken wat dat doet i.pv. een Pi2 en Pi3B+ wat ik al heb.

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

klump4u schreef op woensdag 18 september 2019 @ 19:15:
[...]

Moet dit in de sourcecode komen?
Ik heb een Pi3B besteld, kijken wat dat doet i.pv. een Pi2 en Pi3B+ wat ik al heb.
ja dit kan je in de sourcecode schrijven. In de nieuwe code zit alles alreeds gehatseflatst. Nu nog de fase voltage in de software schrijven dan krijg je een update.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op dinsdag 1 oktober 2019 @ 14:59:
[...]

ja dit kan je in de sourcecode schrijven. In de nieuwe code zit alles alreeds gehatseflatst. Nu nog de fase voltage in de software schrijven dan krijg je een update.
Laatste poging, heb nu een raspberry pi 3b geïnstalleerd.

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

klump4u schreef op donderdag 3 oktober 2019 @ 18:55:
[...]

Laatste poging, heb nu een raspberry pi 3b geïnstalleerd.
en hoe heb je hem aangesloten, dat maakt eel veel uit in deze?

Kennen jullie hem nog ….. de Netduino..?
Hier is de opvolger.... draait full .Net 2.0 (zoals ze zeggen) en niet een uitgekleede versie zoals op de raspberry. Voor mij is het afwachten maar ben wel benieuwd.

Willie Wortel wijzigde deze reactie 04-10-2019 09:41 (40%)


  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op vrijdag 4 oktober 2019 @ 09:06:
[...]

en hoe heb je hem aangesloten, dat maakt eel veel uit in deze?

Kennen jullie hem nog ….. de Netduino..?
Hier is de opvolger.... draait full .Net 2.0 (zoals ze zeggen) en niet een uitgekleede versie zoals op de raspberry. Voor mij is het afwachten maar ben wel benieuwd.
Zo: https://tweakers.net/ext/f/PcsGuLz87mhybwimil7WqzjU/full.jpg

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

Na installatie van de nieuwe meter v4.2 bij mij thuis blijft mijn rasp met het door jou gekozen schema hangen na X uren bij mij. Dat had ik hier al eerder gemeld.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op vrijdag 4 oktober 2019 @ 12:42:
Na installatie van de nieuwe meter v4.2 bij mij thuis blijft mijn rasp met het door jou gekozen schema hangen na X uren bij mij. Dat had ik hier al eerder gemeld.
Ik ga deze week als ik tijd en zin heb een los printje maken met het laatste schema wat je laatst gemaakt had met de ongebruikte ingangen aan de gnd, gaat dat niet werken dan stop ik met de slimme meter uitlezen.

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

klump4u schreef op zaterdag 5 oktober 2019 @ 17:51:
[...]

Ik ga deze week als ik tijd en zin heb een los printje maken met het laatste schema wat je laatst gemaakt had met de ongebruikte ingangen aan de gnd, gaat dat niet werken dan stop ik met de slimme meter uitlezen.
Ben je gek, niet zo somber. Er is altijd nog een ultimate mogelijkheid. De IC niet direct aansluiten op 3.3v maar laten lopen over een gpio pin. Als dan een reset nodig is hoeft alleen de betreffende pin op FALSE gezet te worden en daarna weer op TRUE, zo onderbreek je de stroomkring en wordt de IC gereset. Misschien biedt dat soelaas. probeer eerst de andere mogelijkheden, ik gebruik voor zoiets te testen een plastic prikbord ipv solderen.

Nog zoiets, heeft niets te maken met loggen maar met je sdkaartje klaarmaken voor gebruik. Ik gebruik de anti ransomware optie van Microsoft, als deze aanstaat is het niet mogelijk je kaartje klaar te maken voor gebruikt. pfffff. Hele volksstammen struikelen hierover.

Willie Wortel wijzigde deze reactie 06-10-2019 10:01 (46%)


  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

@klump4u, Je laat zo'n mooie project toch niet varen!!

Omnik 3.0 15 Eging panelen 195wp


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel @jmeinders
Nee ik laat dit mooie project niet varen maar het is gewoon frustrerend dat het niet werkt.
Ik kan er niet de vinger opleggen of het nou alleen bij mij is ( dus ook door mij) of dat het er aan ligt dat ik een slimme meter ESMR 5.0 hebt die elke seconden een telegram uitstuurt en dat daardoor de software vastloopt. Het is jammer dat er niet iemand anders is met een ESMR 5.0 meter met seconden telegrammen.
Op een Pi2 waar ik Domoticz op heb draaien kan ik willekeurig 1 of 10 of 30 seconden deze meter laten uitlezen en dat gaat gewoon weken goed, eigenlijk altijd dus. Er is iets wat niet klopt en dat is shit.

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

@klump4u gebruik je toevallig een splitter met nog een ander device aangesloten op je slimme meter .?. Zo te distilleren uit je laatste post.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op zondag 6 oktober 2019 @ 18:43:
@klump4u gebruik je toevallig een splitter met nog een ander device aangesloten op je slimme meter .?. Zo te distilleren uit je laatste post.
Ja al 4 jaar, maar ook al zonder splitter getest en geen verschil.

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

klump4u schreef op zondag 6 oktober 2019 @ 18:51:
[...]

Ja al 4 jaar, maar ook al zonder splitter getest en geen verschil.
Al 4 jaar maar niet onder dezelfde condities. De slimme meter 9600 baud versus 115200 symbolen per sec. Je begrijpt dat de datalijn maar weinig ruis kan hebben voordat het fout gaat. Splitten, de naam zegt het al geeft een reductie in dB.

  • klump4u
  • Registratie: februari 2008
  • Niet online
Willie Wortel schreef op maandag 7 oktober 2019 @ 19:50:
[...]

Al 4 jaar maar niet onder dezelfde condities. De slimme meter 9600 baud versus 115200 symbolen per sec. Je begrijpt dat de datalijn maar weinig ruis kan hebben voordat het fout gaat. Splitten, de naam zegt het al geeft een reductie in dB.
Dan ga ik binnenkort maar eens een nieuw printje op de pi3 maken en deze alleen maar aan de P1 hangen en alleen de slimme meter uitlezen en verder niks op die Pi3, niks splitten en geen thermometers of S0.
Dat moet dan toch werken lijkt mij.

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

even Resumé:
De nieuwe update DaL 3.0 die ik nu aan het schrijven ben met Visual Studio 2019 is downwards niet compatible, dus met vs 2017 deployen gaat niet. Het deployen van deze nieuwe versie kan problemen opleveren bij de installatie die ik geheel heb uitgezocht how to.

te weten, vs 2017 en vs 2019 kunnen naast elkaar geïnstalleerd zijn op je computer.

Als je de foutmelding krijg :
Make sure that the target device has the developer mode enabled. Could not get a developer license for xxx.xxx.xxx.xxx due to the following error: xxxxxxxxx (netwerk adres en foutcode kunnen verschillen)

ervan uitgaande dat de develop mode is aangevinkt op je windows computer zie hier.

Dan zit er maar 1 ding op, format je sdkaartje opnieuw met de laatste versie van het win IOT besturingsysteem dit moet gebeuren via het IOT dashboard.

  • Gé Brander
  • Registratie: september 2001
  • Laatst online: 14:19
Ik kwam op LinkedIn de volgende link tegen:
https://bornsql.ca/blog/a...-database-edge-explainer/
er kan dus tegenwoordig SQL Server op de Raspberry pi gedraaid worden.

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


  • nicopv
  • Registratie: juli 2015
  • Laatst online: 21-12-2019
Mooi project vind ik dit, en ik heb dit imiddels ook draaien. Ik gebruik 2 S0 meters voor de zonnepanelen en lees de slimme meter uit. Dit wordt naar pvoutput verzonden. Echter ik heb het probleem dat naarmate ik meer opwek mijn verbruik naar beneden gaat, en soms op 0 blijft staat. Verbruik hou je natuurlijk altijd dus ergens zit een rekenfout. Iemand een idee wat ik verkeerd gedaan zou kunnen hebben?

  • klump4u
  • Registratie: februari 2008
  • Niet online
nicopv schreef op vrijdag 13 december 2019 @ 09:33:
Mooi project vind ik dit, en ik heb dit imiddels ook draaien. Ik gebruik 2 S0 meters voor de zonnepanelen en lees de slimme meter uit. Dit wordt naar pvoutput verzonden. Echter ik heb het probleem dat naarmate ik meer opwek mijn verbruik naar beneden gaat, en soms op 0 blijft staat. Verbruik hou je natuurlijk altijd dus ergens zit een rekenfout. Iemand een idee wat ik verkeerd gedaan zou kunnen hebben?
Als je het verbruik van de slimme meter naar pvoutput stuurt dan heb je inderdaad overdag bij meer opwek als verbruik een 0 weergave, je doet niks verkeerd hoor, de slimme meter berekend al interne eigen verbruik en teruglevering.
Dan zul je al een S0 meter erbij moeten plaatsen om het werkelijke verbruik overdag te zien.

klump4u wijzigde deze reactie 13-12-2019 12:46 (5%)

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


  • nicopv
  • Registratie: juli 2015
  • Laatst online: 21-12-2019
Maar ik heb 2 s0 meters, dat wordt ook naar pvoutput verzonden. Maar verbruik heb je altijd, maar dat wordt nu niet berekend. Ik wil natuurlijk altijd het verbruik zien, ook al wek ik meer op dan ik verbruik. Voorheen gebruikte ik Solarmeter op een Arduino. Dat ging wel goed alleen iedere dag wel een keer een leesfout. Vandaar dat ik overgestapt ben naar de Raspberry.

  • klump4u
  • Registratie: februari 2008
  • Niet online
nicopv schreef op vrijdag 13 december 2019 @ 15:58:
Maar ik heb 2 s0 meters, dat wordt ook naar pvoutput verzonden. Maar verbruik heb je altijd, maar dat wordt nu niet berekend. Ik wil natuurlijk altijd het verbruik zien, ook al wek ik meer op dan ik verbruik. Voorheen gebruikte ik Solarmeter op een Arduino. Dat ging wel goed alleen iedere dag wel een keer een leesfout. Vandaar dat ik overgestapt ben naar de Raspberry.
Dus je hebt een S0 voor de zonnepanelen en de andere voor de totaal stroom verbruik?
Hoe heb je die andere aangesloten?
Heb je een link naar pvoutput?

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


  • nicopv
  • Registratie: juli 2015
  • Laatst online: 21-12-2019
ik gebruik nu alleen Dal, voorheen Solarmeter. Om het werkelijike verbruik te weten is alleen een rekensommetje nodig, bv. kw van pulsmeter - teruglevering van p1 = werkeljke verbruik. Dus 1000 Watt van zonnepanelen, teruglevering: 200, betekent verbruik van 800. Omdat nu alleen de teruglevering in DaL staat, maar niet het verbruik op dat moment, zullen de cijfers per dag ook niet kloppen. Als ik de enige ben die dit graag anders ziet neem ik aan dat ik of de software aan moet passen of op zoek moet naar andere software.

  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

varbuilder
Je kunt toch met de var builder een rekensommetje maken.

Omnik 3.0 15 Eging panelen 195wp


  • klump4u
  • Registratie: februari 2008
  • Niet online
@nicopv
Welke waarde (sensor) doe je nu uploaden naar pvoutput ?
Is het een berekening van de var-buider?
Hoe ziet je berekening eruit?
Ik wil je graag helpen maar ik begrijp nog niet goed wat je nu upload en hoe je het berekend.

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


  • nicopv
  • Registratie: juli 2015
  • Laatst online: 21-12-2019
Zo is het nu:
.
"Fieldname": "v1=EnergyGenerationKWH",
"Content": "PulseMeter('myHardware 0').kwh",
"Fieldname": "v2=PowerGenerationWatts",
"Content": "PulseMeter('myHardware 0').watts",
"Fieldname": "v3=EnergyConsumpion",
"Content": "'ElectraConsumedToday P1'",
"Fieldname": "v4=PowerConsumption",
"Content": "'CurrentConsumingElectra P1'",

Maar jmeinders had een heel goed idee, bedankt daarvoor, hij gaf aan dat het misschien via var builder zou kunnen. Ik heb daar nog nooit naar gekeken maar ben daar nu mee aan het stoeien. Ziet er positief uit.
Maar waar is nu die zon? :)

  • klump4u
  • Registratie: februari 2008
  • Niet online
nicopv schreef op zaterdag 14 december 2019 @ 13:43:
Zo is het nu:
.
"Fieldname": "v1=EnergyGenerationKWH",
"Content": "PulseMeter('myHardware 0').kwh",
"Fieldname": "v2=PowerGenerationWatts",
"Content": "PulseMeter('myHardware 0').watts",
"Fieldname": "v3=EnergyConsumpion",
"Content": "'ElectraConsumedToday P1'",
"Fieldname": "v4=PowerConsumption",
"Content": "'CurrentConsumingElectra P1'",

Maar jmeinders had een heel goed idee, bedankt daarvoor, hij gaf aan dat het misschien via var builder zou kunnen. Ik heb daar nog nooit naar gekeken maar ben daar nu mee aan het stoeien. Ziet er positief uit.
Maar waar is nu die zon? :)
Dan is het duidelijk nu, wil je inderdaad je werkelijke verbruik uploaden of inzichtelijk maken dan moet je met de builder aan de slag, B.v.: “Pulsemeter(‘myHardware 0’).watts” - SolarDeliveryNow P1” = “var1”
Daarna een nieuwe: “var1” + “CurrentConsumingElectra P1 = “var2”
Die “var2” doe je dan uploaden naar Fieldname v4 van .
Of je doet zoals ik een extra S0 pulsemeter in de de groepenkast plaatsen waar niet de zonnepanelen doorheen gaan maar wel alle andere verbruikers, dan heb je realtime je werkelijke verbruik.
Wel leuk dat je hier mee bezig bent en welkom.

klump4u wijzigde deze reactie 14-12-2019 17:01 (8%)

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Update over mijn meter, USB uart gekregen maar welke selecteer ik in de optionspagina?
Ik kan UART0 t/m UART6 selecteren maar ik krijg er geen data uit. wel knippert er elke seconden een ledje op de USB/UART stick dus hij krijgt wel een signaal van de meter.
Ook de Zomer en wintertijd van de gasmeter is tijd gevoelig, ik heb als prefix S)( maar krijg dan geen gas data omdat het wintertijd is, zet ik hem op W)( dan krijg ik wel data

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
Ergens gelezen hier op een forum betreffende een slimme meter ESMR5,

Voor alle DSMR4 en (E)SMR5 meters zijn de poortinsrellingen zoals jij aangeeft: 115200/8/N/1
En geen flowcontrol/handshake

Enkele testresultaten met de p1 kabel op de Sagemcom meter wijzen in de richting van het (door de meter) afhandelen van buffer-overruns.
De DSMR4 P1 poort geeft per 10 seconden een telegram af en de (E)SMR5 P1 poort geeft per seconde 1 telegram af. Als de uitlezende computer niet snel genoeg is, dan ga je telegrammem verliezen (omdat er geen flowcontrol/handshake is).
Tot zo ver het effect bij (vrijwel?) alle DSMR4/SMR5 meters.

De ESMR5 meter van Sagemcom lijkt bij een (herhaalde) bufferoverrun te stoppen met versturen van data.
Je merkt dit als de meter na een paar goede (en wss een paar incomplete) telegrammen niks meer stuurt.
Volgens mij is dat niet cf de P1 companion guide van netbeheer Nederland.

Ik ben er nog niet 100% zeker van, en kom hier nog op terug.

Als dit inderdaad aan de hand is, is er geen pasklare oplossing. Hoe stuur je nl bij gebrek aan flowcontrol/handshake dat de meter even moet stoppen?
Voor de hand liggend is het aansturen van de request lijn via DTR/RTS, maar dat moet dan wel via software aangestuurd worden (en nog weet je niet waneer die buffer vol zit).

Wordt vervolgd.

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

De usb poorten op de raspberry wordt door 1 routine uitgelezen.

Hier:

code:
1
2
3
4
5
Dim aqs As String = SerialDevice.GetDeviceSelector()
Dim allCOMMdevices As DeviceInformationCollection = Await DeviceInformation.FindAllAsync(aqs)

Dim s As Integer = DaL.P1config.commPort.Split(" ")(1)
_serialDevice = Await SerialDevice.FromIdAsync(allCOMMdevices(s).Id)



De interne communicatie poort is 0
de usb comm poort is 1 tot 4

Je usb is dus 1, (ik weet even niet of dit afhankelijk is van in welk slot je de usb plaatst)
dit wordt weergegeven in het misc window van VS als je raspberry wordt opgestart in debugmode, dus als je DaL programmacode upload naar je rasp en opstart.

Dit wordt de nieuwe driver, die kan je niet gebruiken daar is een update voor nodig. Daarmee zijn stukjes telegram vvt

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
                Using telegramReader As DataReader = New DataReader(_serialDevice.InputStream) With {
                    .UnicodeEncoding = UnicodeEncoding.Utf8,
                    .ByteOrder = ByteOrder.LittleEndian}

                    Await telegramReader.LoadAsync(BUFFER)

                    Dim receivedStrings As String = ""

                    Do While (telegramReader.UnconsumedBufferLength > 0)
                        Dim bytesToRead = telegramReader.ReadUInt32()
                        receivedStrings &= telegramReader.ReadString(bytesToRead)
                        Task.Delay(10).Wait()
                    Loop

                    WritePin(DaL.P1config.pinOnWrite, True)

                    If receivedStrings.Length > 0 Then
                        _strTelegram = ""

                        Dim canAppend As Boolean = False
                        For Each x In receivedStrings
                            If x = "/" Then canAppend = True
                            If canAppend Then _strTelegram &= x
                            If x = "!" Then canAppend = False
                        Next

                        DaL.p1Now.ConsumedGas = parceValue(DaL.p1Fix.ConsumedGasPreFix, DaL.p1Fix.ConsumedGasPostFix, DaL.p1Now.ConsumedGas)

                        If DaL.p1Now.ConsumedGas <= 0 Then
                            If DaL.p1Fix.ConsumedGasPreFix.IndexOf("S") > -1 Then
                                DaL.p1Fix.ConsumedGasPreFix = DaL.p1Fix.ConsumedGasPreFix.Replace("S", "W")
                            ElseIf DaL.p1Fix.ConsumedGasPreFix.IndexOf("W") > -1 Then
                                DaL.p1Fix.ConsumedGasPreFix = DaL.p1Fix.ConsumedGasPreFix.Replace("W", "S")
                            End If
                        End If

                        DaL.p1Now.ConsumedElectricityHighTariff = parceValue(DaL.p1Fix.ConsumedElectricityHighTariffPreFix, DaL.p1Fix.ConsumedElectricityHighTariffPostFix, DaL.p1Now.ConsumedElectricityHighTariff)
                        DaL.p1Now.ConsumedElectricityLowTariff = parceValue(DaL.p1Fix.ConsumedElectricityLowTariffPreFix, DaL.p1Fix.ConsumedElectricityLowTariffPostFix, DaL.p1Now.ConsumedElectricityLowTariff)
                        DaL.p1Now.CurrentElectricityTariff = If(parceValue(DaL.p1Fix.CurrentElectricityTariffPreFix, DaL.p1Fix.CurrentElectricityTariffPostFix, DaL.p1Now.CurrentElectricityTariff) = ElectricityTariff.Low, ElectricityTariff.Low, ElectricityTariff.High)
                        DaL.p1Now.CurrentPowerConsumption = parceValue(DaL.p1Fix.CurrentPowerConsumptionPreFix, DaL.p1Fix.CurrentPowerConsumptionPostFix, DaL.p1Now.CurrentPowerConsumption)
                        DaL.p1Now.CurrentSolarDelivery = parceValue(DaL.p1Fix.CurrentSolarDeliveryPreFix, DaL.p1Fix.CurrentSolarDeliveryPostFix, DaL.p1Now.CurrentSolarDelivery)
                        DaL.p1Now.SolarDeliveryHighTariff = parceValue(DaL.p1Fix.SolarDeliveryHighTariffPreFix, DaL.p1Fix.SolarDeliveryHighTariffPostFix, DaL.p1Now.SolarDeliveryHighTariff)
                        DaL.p1Now.SolarDeliveryLowTariff = parceValue(DaL.p1Fix.SolarDeliveryLowTariffPreFix, DaL.p1Fix.SolarDeliveryLowTariffPostFix, DaL.p1Now.SolarDeliveryLowTariff)
                        DaL.p1Now.LastTimeReceivedTelegram = Date.Now.Ticks

                        If DaL.P1config.is3Fase Then

                            DaL.p1Now.Amp??reFase1 = parceValue(DaL.p1Fix.amp??reFase1PreFix, DaL.p1Fix.amp??reFase1PostFix, DaL.p1Now.Amp??reFase1)
                            DaL.p1Now.Amp??reFase2 = parceValue(DaL.p1Fix.amp??reFase2PreFix, DaL.p1Fix.amp??reFase2PostFix, DaL.p1Now.Amp??reFase2)
                            DaL.p1Now.Amp??reFase3 = parceValue(DaL.p1Fix.amp??reFase3PreFix, DaL.p1Fix.amp??reFase3PostFix, DaL.p1Now.Amp??reFase3)

                            DaL.p1Now.DeliverNowFase1 = parceValue(DaL.p1Fix.deliverNowFase1PreFix, DaL.p1Fix.deliverNowFase1PostFix, DaL.p1Now.DeliverNowFase1)
                            DaL.p1Now.DeliverNowFase2 = parceValue(DaL.p1Fix.deliverNowFase2PreFix, DaL.p1Fix.deliverNowFase2PostFix, DaL.p1Now.DeliverNowFase2)
                            DaL.p1Now.DeliverNowFase3 = parceValue(DaL.p1Fix.deliverNowFase3PreFix, DaL.p1Fix.deliverNowFase3PostFix, DaL.p1Now.DeliverNowFase3)

                            DaL.p1Now.ConsumptionNowFase1 = parceValue(DaL.p1Fix.consumptionNowFase1PreFix, DaL.p1Fix.consumptionNowFase1PostFix, DaL.p1Now.ConsumptionNowFase1)
                            DaL.p1Now.ConsumptionNowFase2 = parceValue(DaL.p1Fix.consumptionNowFase2PreFix, DaL.p1Fix.consumptionNowFase2PostFix, DaL.p1Now.ConsumptionNowFase2)
                            DaL.p1Now.ConsumptionNowFase3 = parceValue(DaL.p1Fix.consumptionNowFase3PreFix, DaL.p1Fix.consumptionNowFase3PostFix, DaL.p1Now.ConsumptionNowFase3)

                            DaL.p1Now.VoltageFase1 = parceValue(DaL.p1Fix.voltageFase1PreFix, DaL.p1Fix.voltageFase1PostFix, DaL.p1Now.VoltageFase1)
                            DaL.p1Now.VoltageFase2 = parceValue(DaL.p1Fix.voltageFase2PreFix, DaL.p1Fix.voltageFase2PostFix, DaL.p1Now.VoltageFase2)
                            DaL.p1Now.VoltageFase3 = parceValue(DaL.p1Fix.voltageFase3PreFix, DaL.p1Fix.voltageFase3PostFix, DaL.p1Now.VoltageFase3)

                        End If

                        Task.Delay(100).Wait()

                        WritePin(DaL.P1config.pinOnWrite, False)

                        '* Every time the day will change, reset the historic vars  * 
                        '* and start the new day with daily totals on zero.         * 
                        isHistoric()

                    End If

                End Using

klump4u schreef op dinsdag 24 december 2019 @ 16:51:


De ESMR5 meter van Sagemcom lijkt bij een (herhaalde) bufferoverrun te stoppen met versturen van data.
Je merkt dit als de meter na een paar goede (en wss een paar incomplete) telegrammen niks meer stuurt.
Volgens mij is dat niet cf de P1 companion guide van netbeheer Nederland.
Als je dat denkt, haal dan eens als de data niet doorkomt handmatig de 5v van de meter af zodat een comm reset volgt in de meter.
De PZEM-004T module heb ik in DaL gehatseflatst. Hiermee kan je AC Voltage, Ampère, Frequentie Hz, Verbruik etc loggen en is eenvoudig aan te sluiten.Onthoud, 230v is geen speelgoed! Ik zal later eens een demo maken how to.

Kijk hier maar eens:
https://nl.aliexpress.com...ce_asc&page=1&groupsort=1
https://www.banggood.com/...=6157240&cur_warehouse=CN

  • klump4u
  • Registratie: februari 2008
  • Niet online
Mooi @Willie Wortel
Is dit ook i.p.v. een S0 kWh meter te gebruiken?
Ben ook zeer benieuwd naar de veranderingen t.b.v. de P1 poort.
De losse USB-comm stick krijg ik niet werkend. Ik kan kiezen uit 7 UART poorten in de software pagina maar geen een werkt, ledjes op de stick knipperen wel.

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


  • jmeinders
  • Registratie: december 2012
  • Laatst online: 15-01 22:32

jmeinders

www.jmeinders.nl

Hele mooie toevoeging @Willie Wortel
Ik heb er gelijk een besteld. :)

Omnik 3.0 15 Eging panelen 195wp


  • klump4u
  • Registratie: februari 2008
  • Niet online
Vandaag nog maar eens met de USB-UART gestoeid en warempel gelukt, het aansluitschema in de wiki werkt niet bij mij maar volgend schema wel.


UART poort is inderdaad 1 als ik de stick naast de RJ45 aansluiting in de onderste usb duw.
Of er verschil is weet ik niet maar de tijd zal het leren.

klump4u wijzigde deze reactie 12-01-2020 17:37 (14%)

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


  • Gé Brander
  • Registratie: september 2001
  • Laatst online: 14:19
klump4u schreef op zondag 12 januari 2020 @ 17:36:
Vandaag nog maar eens met de USB-UART gestoeid en warempel gelukt, het aansluitschema in de wiki werkt niet bij mij maar volgend schema wel.
[Afbeelding]

UART poort is inderdaad 1 als ik de stick naast de RJ45 aansluiting in de onderste usb duw.
Of er verschil is weet ik niet maar de tijd zal het leren.

[Afbeelding]
Maar dat is raar, je gebruikt dus een USB device om de data te ontvangen?

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


  • klump4u
  • Registratie: februari 2008
  • Niet online
Gé Brander schreef op zondag 12 januari 2020 @ 21:37:
[...]

Maar dat is raar, je gebruikt dus een USB device om de data te ontvangen?
Is gewoon een extra UART poort op de pi dan, mijn meter is DSMR versie 5.0 en spuugt ieder seconden een telegram, om de zoveel tijd hangt de software dan vast en start hij opnieuw op daarom eens kijken of dit help. De Smit trigger zit er gewoon tussen.

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

klump4u schreef op zondag 12 januari 2020 @ 22:44:
[...]

De Smit trigger zit er gewoon tussen.
En daar zit misschien voor jou een probleem! Smit trigger is veeeeeeel gevoeliger, dan had je wellicht beter kunnen kiezen voor een programmeerbare USBtoTTL waarbij je de bits direct kan inverten voordat deze ingelezen wordt. Dan komt de 401 te vervallen.

Als je communicatie nu weer hangt, probeer dan eens de 5v van je meter te halen en daarna er weer op. Lukt dat niet dan de 5 of 3v van je 401 af en er weer op. Dan weten we wat meer. Ik bedoel, ik ben ook benieuwd naar de oorzaak. Had ik die meter maar.

---
Ik ben bezig de webpagina code te schrijven voor de PZEM-004v3 , je kan er 247 :) tegelijk aan 1 bus (Modbus-RTU protocol) hangen. Iedere PZEM heeft een eigen numerieke ID tussen 0x1 en 0xf7
Nu komt het, om de PZEM een nieuw ID te geven (standaard 0xF8) moet deze afzonderlijk ingegeven worden zonder dat andere aan de bus hangen. Het is dus software matig en niet via (soldeer)switchen op het device.
Dit zal dus moeten gebeuren met een commando vanaf de commandline van de browser, zoiets:
http://192.168.1.95:65333/PZEMid:0x1
IP:POORT/commando:adres

Je begrijpt dat als er 2 PZEMs aan de bus hangen met dezelfde ID dat het fout gaat. 8) Dan krijg je altijd data van de eerst gevonden pzem op de bus.

  • klump4u
  • Registratie: februari 2008
  • Niet online
@Willie Wortel
Ik heb inderdaad een kant en klare P1 kabel geprobeerd en dit werkte ook maar de telegrammen die ik door kreeg waren ook niet allemaal goed dus die heb ik weer los gekoppeld.
Ik vind het zelf al vreemd dat ik op de Pi2b, Pi3b en Pi3b+ verschillende telegrammen binnenkrijg.
Gisteren nog even de USB-UART met losse smit trigger op een breadboard in de laptop gestoken en toen via putty een sessie telegrammen laten uitlezen, dit ging iedere seconden foutloos maar daar heb ik niks aan.
Ik zal binnenkort weer eens gaan experimenteren.

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

Ik heb hier even een voorbeeld gemaakt ter verduidelijking:


4 PZEM modules, op 2 commPorts, dus op 1 commPort mogen de slave adressen van de PZEMs niet dezelfde zijn.
Zo een USBtoTTL stick is voor 3x niks te koop op bv ebay.
https://www.ebay.com/sch/...Serial+Converter&_sacat=0
Zo kan je 4 modules in je Raspberry gebruiken + de ingebouwde UART = 5.
Pagina: 1 ... 4 5 6 Laatste


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True