Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem Every hour #1

Open
jhagberg opened this issue Oct 28, 2015 · 2 comments
Open

Problem Every hour #1

jhagberg opened this issue Oct 28, 2015 · 2 comments

Comments

@jhagberg
Copy link

Hej.

Thanks for you script. I have tried several different versions to talk to my REGO6xx (IVT greenline HT6+)
I have extended your script a bit in my fork. I am now working on reading the display unit and it sort of works nicely.

I have also added json output and push to webservice for example Emoncms. It works nicely I run it as cron job. But every whole hour (e.g 07.00, 08.00, 09.00) I got strange output from the script.

Traceback (most recent call last):
  File "rego6xx.py", line 204, in <module>
    main()
  File "rego6xx.py", line 76, in main
    value = s.read_sensor(sensor)
  File "rego6xx.py", line 157, in read_sensor
    return self._read_reg(reg)
  File "rego6xx.py", line 172, in _read_reg
    return self._get_response()
  File "rego6xx.py", line 191, in _get_response
    if r[0] != "\x01" or len(r) != 5:
IndexError: string index out of range

Is this something you have also seen? Any update to your script.
Next task is to try to read settings parameter and also try to write to those registers (Scary :))

(btw check out this http://openenergymonitor.org/emon/node/10123, would be supernice to have this drawn up for our kind of heatpump with brine temp in out vxv hotwater and so on :) )

@magapp
Copy link
Owner

magapp commented Oct 28, 2015

Hej!

Kul att du använder koden! Även riktigt roligt att den vidareutvecklas.

Felet du beskriver har jag aldrig tidigare sett. Däremot så känner jag inte igen koden och radnummret, så jag antar att det är din modifierade kod?

Jag hittar motsvarande på rad 158:

if len(r) != 5 or r[0] != "\x01":

Alltså, om en sträng inte är 5 bytes så räknas det som fel (r[0] kollas inte ens eftersom det är en "or"). Om strängen är 5 bytes lång då kollas r[0] och om den inte är 0x01 så är det och fel.

I stacktracen du skickar med så är if-satsen tvärtom

if r[0] != "\x01" or len(r) != 5:

Det som händer är förmodligen att det är en tom rad som skickas ut och då smäller det. Byt plats på r[0] och len(r) så borde det funka bättre?

Emoncms.org har jag inte sett, men ska definitivt kolla upp vid tillfälle.

Kör hårt! Men gör gärna en pull-request så kan tar jag gärna in dina ändringar.

@jhagberg
Copy link
Author

Ha titta jag trodde jag forkade ditt lib nyligen men jag ligger ju några commit efter. :)
Jo det är väl förmodligen en tom rad serie interfacet kan ju vara lite skakigt ibland.

Är en hel del testing nu får rensa upp sen och fixa självklart du kan ju kolla in min fork så länge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants