taloLogger-perheen julkaisut

A

Antza0

Vieras
Vs: taloLogger-perheen julkaisut

Graffojen piirrossa on pikku bugi, tai ominaisuus. Kun lisäakselin pykälävälin valinta on automaatilla, ja sarjassa on vaikka vain yks anturi, jonka arvo ei ole muuttunut näyttöaikana, tulee graffasoftan virheilmo.

Toi tuli esille termoparianturin käyttöönoton jälkeen. Vielä ns. väliaikainen asennus, kohinaa riittää ja mittausväli harva. Kun sit pyytää lyhyen graffan, vaikka period yks tunti, voi olla ettei ton aikana ole montaakaan mittausta. Ja jos kaikista tasan sama arvo, tulee softalle pattitilanne ku yrittää 0-stepillä edetä akselinpiirrossa.

Virheilmo:
JpGraph Error: 25064 Minor or major step size is 0. Check that you haven't got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem

Eipä tuo paljoa menoa haittaa, kun tietää mistä on kyse.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

Antza0 sanoi:
Eipä tuo paljoa menoa haittaa, kun tietää mistä on kyse.

Kiitos kuitenkin ilmoituksesta. Selvä bugi koodissa, joka korjataan seuraavaan versioon.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

Julkaistu 1.6.2016:

taloLogger v1.7h:
  • NibeBusRS485: Lisätty kompressorin taajuustieto DEFAULT-profiiliin.
  • Lisätty uusi moduuli: HUSDATA. Moduulilla voidaan lokittaa Husdata.se H1 Interface -liityntälaitteen kautta tietoa niistä pumpuista, joita Husdata.se H1 Interface tukee (useita merkkejä ja malleja). Lista tuetuista pumpuista ja eri tapauksissa tarjolla olevista datapisteiden ID:istä Husdata.se:n dokumentissa (http://www.husdata.se/dl.asp?h=22344). Moduuli ei tunnista kytkettyä pumppumallia, vaan siltä voi kysellä pumpun tarjoamia data-ID:itä (heksamuotoisia ID-arvoja, selviävät linkin dokumentista).
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

Painiskelen talologgerin ja Enervent (EDASERIAL):in kanssa ja törmään ongelmaan missä saan CRC virheitä

Raspberry PI + modbus usb adapteri: Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
modbus adapteri liitetty Enerventin emoon liittimeen OP2 (ohjauspaneeli2?), (Freeway RTU liittimestä en saa mitään dataa ulos talologgerilla)

Alla debug logit:

10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Modbus serial RTU listener thread started.
10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 01 03 00 C8 00 02 45 F5

10.01.2017 16:30:05: Initialized module SQLITEDB
10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 01 03 04 00 00 00 00 FA 33

10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 01 04 00 01 00 01 60 0A 01 04 02 00 00 B9 30

10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: ERROR: Invalid response data: Invalid CRC field
10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 02 03 00 C8 00 02 45 C6

10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 03 03 00 C8 00 02 44 17

10.01.2017 16:30:05: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 04 03 00 C8 00 02 45 A0

10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 05 03 00 C8 00 02 44 71

10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 10 00 01 00 14 28 00 00 00 00 00 00 00 00 00
00 00 0A 00 C5 00 BC 00 3D 00 E2 FE 70 FE 70 00
1F 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01
04

10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 2: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 3: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 4: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 5: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 6: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 7: 10
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 8: 197
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 9: 188
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 10: 61
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 11: 226
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 12: 65136
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 13: 65136
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 14: 31
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 15: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 16: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 17: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 18: 2
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 19: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 20: 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received value for register 21: 0
10.01.2017 16:30:06: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 10 00 14 00 1F 3E 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 56 00 4C 00 BB 00

10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: ERROR: Invalid response data: Invalid CRC field
10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: A6 00 00 00 00 00 00 00 00 00 2B 00 1D 00 12 00
0A 00 01 00 11 00 02 00 00 00 02 00 00 00 96 00
00 00 64 00 35 57 20

10.01.2017 16:30:06: ModbusSlaveSerialRTUModbusListener: ERROR: Invalid response data: Invalid CRC field
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 06 02 53 00 03 39 B3

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 596: 3
10.01.2017 16:30:07: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 06 02 4F 00 96 38 1A

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 592: 150
10.01.2017 16:30:07: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 10 02 75 00 03 06 00 00 00 00 00 00 FD 82

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 630: 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 631: 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 632: 0
10.01.2017 16:30:07: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 10 02 7D 00 02 04 00 31 00 35 B9 56

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 638: 49
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for register 639: 53
10.01.2017 16:30:07: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 0F 00 28 00 01 01 30 8F 49

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for coil 41: 0
10.01.2017 16:30:07: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 0F 00 48 00 01 01 00 0F 55

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received value for coil 73: 0
10.01.2017 16:30:07: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 01 03 00 C8 00 02 45 F5 01 03 04 00 00 00 00 FA
33

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: ERROR: Invalid response data: Invalid CRC field
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 01 04 00 01 00 01 60 0A 01 04 02 00 00 B9 30

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: ERROR: Invalid response data: Invalid CRC field
10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 02 03 00 C8 00 02 45 C6

10.01.2017 16:30:07: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 03 03 00 C8 00 02 44 17

10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 04 03 00 C8 00 02 45 A0

10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 05 03 00 C8 00 02 44 71

10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 10 00 01 00 14 28 00 00 00 00 00 00 00 00 00
00 00 0A 00 C6 00 BB 00 3D 00 E2 FE 70 FE 70 00
22 00 00 00 00 00 00 00 02 00 00 00 00 00 00 57
BC

10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 2: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 3: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 4: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 5: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 6: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 7: 10
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 8: 198
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 9: 187
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 10: 61
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 11: 226
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 12: 65136
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 13: 65136
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 14: 34
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 15: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 16: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 17: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 18: 2
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 19: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 20: 0
10.01.2017 16:30:08: ModbusSlaveSerialRTUModbusListener: Received value for register 21: 0
10.01.2017 16:30:08: EdaModbusRTUListener: Received data for unitId 0
10.01.2017 16:30:09: ModbusSlaveSerialRTUModbusListener: Received Modbus RTU frame: 00 10 00 14 00 1F 3E 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 57 00 4C 00 BC 00


Toki tämä toimii kohtalaisesti sillä kaikki tarvittavat datat saan ulos, mutta olisi kova päästä eroor CRC virheistä jne
Rekisterit 0-21 päivittyy aika useasti ja loput rekisterit muutaman minuutin viiveellä

Onko kellään antaa vinkkejä?
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Painiskelen talologgerin ja Enervent (EDASERIAL):in kanssa ja törmään ongelmaan missä saan CRC virheitä

Raspberry PI + modbus usb adapteri: Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
modbus adapteri liitetty Enerventin emoon liittimeen OP2 (ohjauspaneeli2?), (Freeway RTU liittimestä en saa mitään dataa ulos talologgerilla)

Mahtaako tuo "modbus usb adapteri" olla mikä? Siellä Enerventin päässä nimittäin pitäisi olla RS485-väylä, johon kytkeydytään, joten RaspberryPi:n ja Enerventin väliin tarvitaan RS485-adapteri. Modbus-RTU:sta sen adapterin ei käsittääkseni pitäisi tietää mitään.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

Kyseessä on juurikin USB-RS485 adapteri Raspin ja Enerventin välissä, tarkemmin sanottuna tämä:

PL2303HX Chip USB to RS485 485 Converter Adapter:
lsusb antaa sille:
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

kokeilin aikaisemmin toista USB - RS485 adapteria
USB to TTL RS485 Serial Converter Adapter FTDI interface FT232RL Module
lsusb:
Bus 002 Device 009: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
mutta tämä tod näk oli huonosti terminoitu ja se sekoitti enerventin oikean ohjauspaneelin toiminnan niin kauan kun se oli kytkettynä kiinni.
Tällä sai myös dataa ulos samanlaisilla CRC virheillä.

Johto laitteiden välillä on myös 1m pituinen, eikä lähellä ole virtakaapeleita tms, yritin eliminoida häiriöitä mahd. paljon
 

VesA

In Memoriam
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Kyseessä on juurikin USB-RS485 adapteri Raspin ja Enerventin välissä, tarkemmin sanottuna tämä:

PL2303HX Chip USB to RS485 485 Converter Adapter:
lsusb antaa sille:
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

kokeilin aikaisemmin toista USB - RS485 adapteria
USB to TTL RS485 Serial Converter Adapter FTDI interface FT232RL Module
lsusb:
Bus 002 Device 009: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
mutta tämä tod näk oli huonosti terminoitu ja se sekoitti enerventin oikean ohjauspaneelin toiminnan niin kauan kun se oli kytkettynä kiinni.
Tällä sai myös dataa ulos samanlaisilla CRC virheillä.

Johto laitteiden välillä on myös 1m pituinen, eikä lähellä ole virtakaapeleita tms, yritin eliminoida häiriöitä mahd. paljon

Mitähän muuta Raspissa on kiinni ? Jos siinä on muutakin kuin tuo vekotin niin kannattaa kokeilla katoavatko CRC-ongelmat jos Raspi kerää dataa niin että siinä ei ole muita piuhoja, ainakaan sellaisia joiden kautta se voisi saada maata ( esmes näyttö ).
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

Raspissa ei ole kiinni kuin poweri johto sekä cat5e johto (UTP) nettiä varten..
kokeilin myös Enerventin RS485 väylästä käyttää GROUND johtoa, tällä ei ollut vaikutusta
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

Näemmä rekisteriarvot 2-21 tulee useasti (parin sekunnin välein), mutta loput arvot tulee onnistuneesti n. kerran 30min aikana kun muulloin dataa ei saa CRC virheiden takia
 

VesA

In Memoriam
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Näemmä rekisteriarvot 2-21 tulee useasti (parin sekunnin välein), mutta loput arvot tulee onnistuneesti n. kerran 30min aikana kun muulloin dataa ei saa CRC virheiden takia

Ei noista ihan ymmärrä mitä siinä tapahtuu, mutta eiköhän tuohon näy kaikki liikenne. Sitä voisi koittaa vähän tulkita.. jotta näkee mitä juttelua CRC-viesteissä menee pieleen.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

Kun tarkastelen tuota lokia ja sitten koodia, niin havainnot seuraavat:

TaloLoggerin Modbus-moduulin Serial RTU -vastaanotto on tehty Modbus-speksin mukaisesti. Speksissä Modbus RTU -kehykset erotetaan toisistaan riittävän pitkällä hiljaisuudella. Nyt näyttäisi lokin mukaan siltä, että tuossa ongelmakehyksessä kehys on jakaantunut kahtia. Näinollen molemmista tynkäpuoliskoista tulee CRC-virhe. Jos puolikkaat yhdistää, niin ainakin tavumääräisesti siitä tulisi sopivan mittainen yksi kehys (en tosin tarkistanut sen CRC:tä).

Jostain syystä siis tuon kehyksen vastaanoton keskelle tulee niin pitkä tauko, että se merkitsee Modbus Serial RTU -speksin mukaan kehysrajaa. Tuleeko se ohjaimelta, liityntään käytetystä laitteesta, liityntään käytetyn laitteen kernel-ajurista vai Raspberryn yleisestä skeduloinnista? Tästä ei tietoa. Näyttäisi kuitenkin, että kaikki tavut siellä siirtyvät ja uskoisin, että niissä ei ole sinänsä CRC-virheitä.

Jos tähän ei tuon perusteella keksitä jotain ratkaisua, niin on toki mahdollista tehdä taloLoggerin Modbus-kirjastoon robustisuutta Modbus-speksin ulkopuolelle. Eli niin, että haluttaessa kirjasto menisi johonkin erityistilaan, jossa se tarkastelee ylipäänsä tavuvirtaa ja yrittää etsiä sieltä nimenomaan oikeellisia modbus-frameja - ei niikään ole kiinnostunut framejen välisistä hiljaisuusajoista tai muista. Ainakin niin tuo varmaankin saataisiin tulkitsemaan data oikein, mutta samalla toki rikotaan Modbus RTU (siksi tämä siis vain erikseen niin konfiguroitaessa).
 

VesA

In Memoriam
Vs: taloLogger-perheen julkaisut

Raspi on siitä hankala laite että siinä on käytössä vain yksi USB-2.0 jossa on kiinni vähän kaikki kortin liittimien IO, ethernettiä myöden. Ajoituksella pelaavia protokollia voi olla paha saada siinä pelaamaan jos USB:n puskureissa on jotain ihan muuta seassa.. tai sitten tosiaan vähän lipsua speksistä ja katsella saisiko datasta ehjän viestin vaikka ajoitus vähän lipsuu. Muistaakseni Raspissa olisi jossain GPIO-pinnissä UART jolla homma varmaan pelaisi speksin mukaan, mutta siihen pitää sitten keksiä omaa rautaa väliin.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

Kokeilin käyttämällä vuoden vanhalla Dell XPS 13 läppärillä Raspin sijaan missä on Mint 18.1 (ubuntu 16.04) mutta samaa Invalid CRC field:ia pukkaa.
Nyt näyttää että CRC virheitä tulee enempi kuin raspilla. (logia liitteessä)
 

Liitteet

  • log.txt
    28,7 KB · Katsottu: 450

VesA

In Memoriam
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Kokeilin käyttämällä vuoden vanhalla Dell XPS 13 läppärillä Raspin sijaan missä on Mint 18.1 (ubuntu 16.04) mutta samaa Invalid CRC field:ia pukkaa.
Nyt näyttää että CRC virheitä tulee enempi kuin raspilla. (logia liitteessä)

Voi olla että se ns kuuluu asiaan. Tuohan on periaatteessa aika suljettu ympäristö, jossa valmistajan ei omia ohjauksiaan varten tarvitse niin välittää protokollaspeksien noudattamisesta pilkulleen.. silloin ei auta muu kuin tehdä sama lipsunta siellä kotiautomaation puolella kuten olammi tuossa jo pohdiskelikin.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

Kyselin asiasta suoraan Enerventin aspasta ja sain selvän vastauksen ja sain homman pelittämään omalla testi scriptillä

Emolevyn Op1 ja Op2 (ohjauspaneeli portit) eivät käytä Modbus-RTU liikenettä vaan heidän omaa joka sinänsä muistuttaa Modbus-RTU liikennettä,
Tästä johtuen aina silloin tällöin homma toimi jne kuten arvelittekin aikaisemmissa viesteissä.

Emolevyn freeway porttissa on taas oikeata modbus-RTU liikennettä, ja siellä Enerventin emolevy on slave moodissa (slave 1, 19200baud, 8 bit, No parity, 1 stopbit (8N1))
Ja pistämällä oman softan master moodiin ja kyselemällä rekistereitä tuolta slavelta homma toimii hyvin.
huomasin että timeoutiksi piti pistää 1.5sek koska slave vastasi 32.4ms - 979.8ms hajonnalla
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

TaloLoggerin EnerventEDA-moduulin sarjaliikennepuoli toimii tosiaan modbusilla ja siten, että se vain kuuntelee väylää ja poimii sieltä unit 1:sen datoja. Ilmeisesti tulkinta on jossain määrin väärä tai ei ole ainakaan tuolle ohjailmelle sopiva ja pitäisi käyttää kyselevää modbus-ratkaisua. Tukihan sille koodissa on, mutta tuo konfiguraatioprofiili puuttuu. Ymmärsinkö oikein?
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
TaloLoggerin EnerventEDA-moduulin sarjaliikennepuoli toimii tosiaan modbusilla ja siten, että se vain kuuntelee väylää ja poimii sieltä unit 1:sen datoja. Ilmeisesti tulkinta on jossain määrin väärä tai ei ole ainakaan tuolle ohjailmelle sopiva ja pitäisi käyttää kyselevää modbus-ratkaisua. Tukihan sille koodissa on, mutta tuo konfiguraatioprofiili puuttuu. Ymmärsinkö oikein?

Näin ymmärsin itsekin. Käytössäni on Enervent Pingvin vuosimallia 2012, en tiedä onko eri motherboard revisiossa/malleissa sitten pieniä muutoksia että nykyinen TaloLoggerin kuuntelemalla unit 1:isä (OP1/OP2 liittimestä) toimii tarpeeksi hyvin muilla käyttäjillä?
Toki jos olisin ollut kiinnostunut vain rekisteriarvoista 1-20 ja käyttämällä TaloLoggeria ilman debug flagiä, en olisi tod, näk edes huomannut mitään ongelmaa.

Mutta lähtökohtaisesti pitää olla "kyselymoodissa" kun käyttää freeway liittimen porttia.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Näin ymmärsin itsekin. Käytössäni on Enervent Pingvin vuosimallia 2012, en tiedä onko eri motherboard revisiossa/malleissa sitten pieniä muutoksia että nykyinen TaloLoggerin kuuntelemalla unit 1:isä (OP1/OP2 liittimestä) toimii tarpeeksi hyvin muilla käyttäjillä?
Toki jos olisin ollut kiinnostunut vain rekisteriarvoista 1-20 ja käyttämällä TaloLoggeria ilman debug flagiä, en olisi tod, näk edes huomannut mitään ongelmaa.

Mutta lähtökohtaisesti pitää olla "kyselymoodissa" kun käyttää freeway liittimen porttia.

Jos teen testimielessä laajennuksen moduuliin, jossa ollaan aktiivisia modbus-kyselijöitä, niin testaatko? Itsellä aina se ongelma, että näitä laitteistoja ei ole, niin pitää sokkona tehdä eikä itse pääse oikeilla vehkeillä testaamaan.
 

SaimonFI

Jäsen
Vs: taloLogger-perheen julkaisut

Nyt loppui Googlesta hakutulokset, apua kaivataan.

Ongelma: TaloLoggeri ei lähde käyntiin ja install-scripti epäonnistuu


Kaivoin Rasperryn B-mallin laatikosta ja vanhan Raspbianin käyntiin.

Päivitykset tehty:
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update

Kun ajan "sudo ./install_taloLoggerPi.py" menee homma niin kauan hyvin, kunnes se lataa itse ohjelmaa:

Retrieving release package from network.
--2017-01-26 13:55:36-- http://olammi.iki.fi/sw/taloLoggerPi/taloLoggerPi_home_v11e.tgz
Selvitetään osoitetta olammi.iki.fi (olammi.iki.fi)... 217.112.242.173
Yhdistetään palvelimeen olammi.iki.fi (olammi.iki.fi)|217.112.242.173|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 301 Moved Permanently
Sijainti: https://olammi.iki.fi/sw/taloLoggerPi/taloLoggerPi_home_v11e.tgz [seurataan]
--2017-01-26 13:55:36-- https://olammi.iki.fi/sw/taloLoggerPi/taloLoggerPi_home_v11e.tgz
Yhdistetään palvelimeen olammi.iki.fi (olammi.iki.fi)|217.112.242.173|:443... yhdistetty.
GnuTLS: A TLS warning alert has been received.
SSL-yhteyden muodostaminen ei onnistunut.
ERROR: Cannot retrieve taloLoggerPi talo home folder release package. Exiting.

Ja siihen jäi. Google osasi kertoa, että WGET on tehnyt tuota jo vuonna 2014, mutta pitäisi olla korjattu. Liekö vika Raspberryn vanhassa B-versiossa vai missä? Erinäisiä DNS muutoksia kokeiltu, ei apua.

Latasin .py tiedostot yksi kerrallaan /tmp/ kansioon ja poistin aina install-scriptistä latausosion, mutta jossain kohtaa taisi mennä vikaan. Kansiot /home/talo/ yms. löytyvät, mutta lokiin ei tule edes dummy-anturin tietoja. Apache lienee toiminnassa, kun www-sivu aukeaa (ilman sinikäyrää)

SVSTAT kertoo seuraavaa, kun testaa parin sekunnin välein. PID vaihtuu jatkuvasti, boottaileeko tuo palvelu itseään?

pi@raspberrypi ~ $ sudo svstat /etc/service/taloLogger
/etc/service/taloLogger: up (pid 3199) 3 seconds
pi@raspberrypi ~ $ sudo svstat /etc/service/taloLogger
/etc/service/taloLogger: up (pid 3203) 0 seconds
pi@raspberrypi ~ $ sudo svstat /etc/service/taloLogger
/etc/service/taloLogger: up (pid 3206) 1 seconds

Muita tietoja:
Linux raspberrypi 4.4.44+ #950 Sun Jan 22 16:15:51 GMT 2017 armv6l GNU/Linux

NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian

Simo
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

Vuoden vaihteessa siirsin olammi.iki.fi-webit TLS:n taakse, koska alkoi olemaan painetta, että selaimet alkavat nillittämään palveluista, joita ei voida autentikoida sertifikaateilla. Näyttää tuoneen sitten ongelmia näihin installereihin, jotka hakevat noita paketteja palvelimeltani http/s:llä. Voi olla, että vanha Raspbian on ongelma, jos siinä ei ole Let's encryptin juurivarmenne luotettujen listalla. Tai sitten ei toimi uudella Rasbianillakaan, mutta siitä ei ainakaan toistaiseksi ole kukaan raportoinut.
 

SaimonFI

Jäsen
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Vuoden vaihteessa siirsin olammi.iki.fi-webit TLS:n taakse, koska alkoi olemaan painetta, että selaimet alkavat nillittämään palveluista, joita ei voida autentikoida sertifikaateilla. Näyttää tuoneen sitten ongelmia näihin installereihin, jotka hakevat noita paketteja palvelimeltani http/s:llä. Voi olla, että vanha Raspbian on ongelma, jos siinä ei ole Let's encryptin juurivarmenne luotettujen listalla. Tai sitten ei toimi uudella Rasbianillakaan, mutta siitä ei ainakaan toistaiseksi ole kukaan raportoinut.

Onko tähän oikotietä onneen, eli saako tuon tehtyä luotetuksi?
 

SaimonFI

Jäsen
Vs: taloLogger-perheen julkaisut

Kysymys: Mitä TaloLogger tekee GPIO ohjauksille?

Yritin siis asentaa Talologgeria samalle Rasperylle, kuin Domoticz. Käytän GPIO ohjauksia relekortin kanssa Domoticzissa ja nehän kuoli tässä yhteydessä =/ (Joo tiedetään, ei yhteen Rasperiin kaikkia munia..)

Ongelma:

Kun määritän esim. "gpio export 17 out" ja sen jälkeen "gpio exports", niin se näkyy oikein. Mutta, "gpio write 17 1" ei muuta pinnin jännitettä lainkaan. Toista kautta tehtynä "cd /sys/class/gpio/gpio17" --> "echo 1 > value" --> Rele toimii.

- Miksi se toimii tuolta, mutta ei gpio-komennolla?
 

SaimonFI

Jäsen
Vs: taloLogger-perheen julkaisut

VesA sanoi:
riittäisköhän --no-check-certificate -vipunen ohittamaan ongelman ?

Ei auta :(

CURL osaa noutaa nuo paketit, mutta nyt silmät väsyy install_scriptin muokkaukseen =/

pi@raspberrypi ~ $ wget --no-check-certificate -O install_taloLoggerPi.py http://olammi.iki.fi/sw/taloLoggerPi/install_taloLoggerPi.py
--2017-01-26 21:48:43-- http://olammi.iki.fi/sw/taloLoggerPi/install_taloLoggerPi.py
Selvitetään osoitetta olammi.iki.fi (olammi.iki.fi)... 217.112.242.173
Yhdistetään palvelimeen olammi.iki.fi (olammi.iki.fi)|217.112.242.173|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 301 Moved Permanently
Sijainti: https://olammi.iki.fi/sw/taloLoggerPi/install_taloLoggerPi.py [seurataan]
--2017-01-26 21:48:44-- https://olammi.iki.fi/sw/taloLoggerPi/install_taloLoggerPi.py
Yhdistetään palvelimeen olammi.iki.fi (olammi.iki.fi)|217.112.242.173|:443... yhdistetty.
GnuTLS: A TLS warning alert has been received.
SSL-yhteyden muodostaminen ei onnistunut.
 

VesA

In Memoriam
Vs: taloLogger-perheen julkaisut

SaimonFI sanoi:
Ei auta :(

CURL osaa noutaa nuo paketit, mutta nyt silmät väsyy install_scriptin muokkaukseen =/

Sinne pitäisi vielä vissiin laittaa --secure-protocol=TLSv1_2

eikös joku sed wget / wget --vipu /g hoitaisi editoinnin ?
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

SaimonFI sanoi:
Ei auta :(

CURL osaa noutaa nuo paketit, mutta nyt silmät väsyy install_scriptin muokkaukseen =/

Näyttäisi, että Raspbianissa on wget:istä tai sen taustalla olevista SSL/TLS-kirjastoista vanhempaa versiota, joka ei toimi Apacheen konffattujen modernimpien "turvallisempien" algoritmien kanssa. Kokeilin samassa käyttiksessä curl:ia, joka tosiaan osaa hakea kamat.

Skriptiä pitänee fiksata (vaihtaa curliin) tai löysentää www-palveluni vaatimuksia.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Skriptiä pitänee fiksata (vaihtaa curliin) tai löysentää www-palveluni vaatimuksia.

Koittelin löysäillä algoritmeja ja se ei auttanut mitään, joten palasin takaisin tiukkoihin. Nyt kuitenkin mahdollistin edelleen noiden taloLogger:iin liittyvien pakettien latailun ilman SSL/TLS:ää, joten skriptien pitäisi taas toimia vanhallakin käyttiksellä ja wget:illä muokkaamatta skriptiä.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

SaimonFI sanoi:
Kysymys: Mitä TaloLogger tekee GPIO ohjauksille?

Yritin siis asentaa Talologgeria samalle Rasperylle, kuin Domoticz. Käytän GPIO ohjauksia relekortin kanssa Domoticzissa ja nehän kuoli tässä yhteydessä =/ (Joo tiedetään, ei yhteen Rasperiin kaikkia munia..)

Ongelma:

Kun määritän esim. "gpio export 17 out" ja sen jälkeen "gpio exports", niin se näkyy oikein. Mutta, "gpio write 17 1" ei muuta pinnin jännitettä lainkaan. Toista kautta tehtynä "cd /sys/class/gpio/gpio17" --> "echo 1 > value" --> Rele toimii.

- Miksi se toimii tuolta, mutta ei gpio-komennolla?

TaloLogger ei tee GPIO:lle mitään, ellei RPIGPIO-tyyppistä datasourcea aktivoida taloLoggerin konfiguraatiotiedostossa. Jos se aktivoidaan, niin taloLogger asettaa käynnistyksen yhteydessä konfiguraatiossaan määritellyt GPIO-nastat IN-tyyppisiksi ja sillä voi sitten lukea konfiguroitujen inputien tilaa. Tähän käytetään Python RPi.GPIO-moduulia.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Voin testailla

Nyt olisi Enervent EDA Modbus Serial RTU master mode -toteutus testausta vailla. Linkin takaa kehitysversio, jota koitettu kotioloissa sen verran, että ei suoraan heitä lusikkaa kovin pitkälle nurkkaan. EDASERIAL-moduulissa on nyt moodit MASTER ja SLAVE. Oletukseksi laitoin tuon MASTER ja UNITID:ksi 1.

Kehitysversio (sisältää muutakin julkaisematonta): https://olammi.iki.fi/sw/taloLogger/taloLogger_dev_201612.zip

Testikommentit tervetulleita.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Nyt olisi Enervent EDA Modbus Serial RTU master mode -toteutus testausta vailla. Linkin takaa kehitysversio, jota koitettu kotioloissa sen verran, että ei suoraan heitä lusikkaa kovin pitkälle nurkkaan. EDASERIAL-moduulissa on nyt moodit MASTER ja SLAVE. Oletukseksi laitoin tuon MASTER ja UNITID:ksi 1.

Kehitysversio (sisältää muutakin julkaisematonta): https://olammi.iki.fi/sw/taloLogger/taloLogger_dev_201612.zip

Testikommentit tervetulleita.

Nopealla (10min) testauksella näyttäisi modbus toimivan ok.

Koodi:
01.02.2017 08:13:06: Starting taloLogger.py (v1.7j).
01.02.2017 08:13:06: Module config read EDASERIAL
01.02.2017 08:13:06: Module config read FILESTORE
01.02.2017 08:13:06: Initialized module EDASERIAL
01.02.2017 08:13:06: Initialized module FILESTORE
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 6: [0]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 7: [65523]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 8: [185]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 9: [173]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 10: [40]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 11: [215]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 13: [65136]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 29: [0]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 30: [86]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 35: [0]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 36: [32]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 44: [3]
01.02.2017 08:14:01: EDASERIAL: Received data for unitid 1 address 45: [0]
01.02.2017 08:14:01: TaloLoggerThreadStore: Storing logged data with 13 points.
Jätän sen pidemmäksi aikaa pyörimään ja kokeilen useammalla arvolla, mutta sen huomasin että arvot haetaan (index off by one) väärällä indeksillä

kun haen arvoa: @MEASURE = freshairtemp:EDASERIAL.Fresh air temperature X1
(EDA rekisteri 3x0006 Raitisilman lämpötila X1)

Saan arvon
Koodi:
 01.02.2017 08:21:00: EDASERIAL: Received data for unitid 1 address 6: [0]
joka on oikeasti rekisterin 3x0005 OP5 lämpötila arvo.

edit: piti muokata avoja "[ 0]" lisäämällä välimerkki kun emojit iski muuten keskelle
edit2: vaihdoin code tagiin
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Jätän sen pidemmäksi aikaa pyörimään ja kokeilen useammalla arvolla, mutta sen huomasin että arvot haetaan (index off by one) väärällä indeksillä

kun haen arvoa: @MEASURE = freshairtemp:EDASERIAL.Fresh air temperature X1
(EDA rekisteri 3x0006 Raitisilman lämpötila X1)

Saan arvon
Koodi:
 01.02.2017 08:21:00: EDASERIAL: Received data for unitid 1 address 6: [0]
joka on oikeasti rekisterin 3x0005 OP5 lämpötila arvo.

Ok. Voitko varmistaa vielä, kun testaat, että koskeeko tämä off-by-one kaikkia noita arvoja vai vain Fresh air temperature X1:stä. Ja tarkastelu siten, että kun kirjoitat mitattavan suureen nimen konffiin, niin tuleeko lokiin sitä vai viereistä. EDASerialin lokirivillä debug-lokissa saattaa tulla ns. tekninen arvo, johon ei pidä suoraan tuijottaa.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Ok. Voitko varmistaa vielä, kun testaat, että koskeeko tämä off-by-one kaikkia noita arvoja vai vain Fresh air temperature X1:stä. Ja tarkastelu siten, että kun kirjoitat mitattavan suureen nimen konffiin, niin tuleeko lokiin sitä vai viereistä. EDASerialin lokirivillä debug-lokissa saattaa tulla ns. tekninen arvo, johon ei pidä suoraan tuijottaa.

Kaikki arvot on off by one

logitettavat arvot
Koodi:
@MEASURE = freshairtemp:EDASERIAL.Fresh air temperature X1
@MEASURE = supplyairtempahr:EDASERIAL.Supply air temperature after heat recovery X2
@MEASURE = supplyairtemp:EDASERIAL.Supply air temperature X3
@MEASURE = wasteairtemp:EDASERIAL.Waste air temperature X4
@MEASURE = exhaustairtemp:EDASERIAL.Exhaust air temperature X5
@MEASURE = exhaustairtempbhr:EDASERIAL.Exhaust air temperature before heat recovery X8
@MEASURE = exhaustairhumid:EDASERIAL.Exhaust air humidity X5
@MEASURE = input:EDASERIAL.Heat recovery supply side %
@MEASURE = output:EDASERIAL.Heat recovery exhaust side %
@MEASURE = 48hrhumid:EDASERIAL.48h Rh measurement
@MEASURE = abshum:EDASERIAL.Absolute humidity
@MEASURE = state:EDASERIAL.State data
@MEASURE = controlsteps:EDASERIAL.Control steps of temperature

debug logi:
Koodi:
01.02.2017 10:29:00: FILESTORE: Inserting data to file: /home/pi/data.log
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 6: [0]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 7: [65528]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 8: [185]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 9: [175]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 10: [43]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 11: [216]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 13: [65136]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 29: [0]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 30: [86]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 35: [0]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 36: [32]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 44: [3]
01.02.2017 10:30:00: EDASERIAL: Received data for unitid 1 address 45: [0]

ja FILESTORE:en tulee vastaavat arvot
@DATASTORE=FILESTORE:FILESTORE
Koodi:
   freshairtemp:0.000000
    supplyairtempahr:-0.800000
    supplyairtemp:18.600000
    wasteairtemp:17.400000
    exhaustairtemp:4.300000
    exhaustairtempbhr:21.600000
    exhaustairhumid:-400
    input:0
    output:86
    48hrhumid:0
    abshum:32
    state:3
    controlsteps:0

kaikki arvot pitäisivät paikkansa jos ne kaikki olisi off-by-one.

Kokeilin muokkaamalla modbus.py filusta rivi: 635

Koodi:
def createModbusFrameRead(functionCode, startingAddress, numOf):
    temp = []
    appendInt8(temp, functionCode)
-    appendInt16(temp, startingAddress - 1) 
+   appendInt16(temp, startingAddress)
    appendInt16(temp, numOf)
    return temp

Ja arvot tulevat nyt oikein ja vastaavat myös mitä ohjauspaneelista luetut arvot ovat

Koodi:
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 6: [65526]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 7: [187]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 8: [176]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 9: [43]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 10: [219]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 11: [65136]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 13: [37]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 29: [86]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 30: [76]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 35: [32]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 36: [0]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 44: [0]
01.02.2017 10:59:00: EDASERIAL: Received data for unitid 1 address 45: [2]

Koodi:
01.02.2017 10:59:00:
    freshairtemp:-1.000000
    supplyairtempahr:18.700000
    supplyairtemp:17.600000
    wasteairtemp:4.300000
    exhaustairtemp:21.900000
    exhaustairtempbhr:-40.000000
    exhaustairhumid:37
    input:86
    output:76
    48hrhumid:32
    abshum:0
    state:0
    controlsteps:2
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

atnu sanoi:
Kaikki arvot on off by one

kaikki arvot pitäisivät paikkansa jos ne kaikki olisi off-by-one.

Kokeilin muokkaamalla modbus.py filusta rivi: 635

Ja arvot tulevat nyt oikein ja vastaavat myös mitä ohjauspaneelista luetut arvot ovat

Muutoksesi todensi asian tässä, muttei ole kestävä. Modbus-speksi määrittelee nimenomaan niin, että kun kysytään dataelementtiä n, niin protokolla-PDU:hun tulee osoite n-1.
Ref: http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf kohta "4.4 MODBUS Addressing model".

Nyt nuo dataelementit on listattu Enerventin dokkarin EDA_Modbus_Registers_2011_09_14.pdf mukaisesti, jossa esim. holdingregister 6 sisältää tiedon "3x0006 Fresh air temperature X1". Aiemmin tuolla TCP-EDA-liitynnällä sekä tällä SLAVE-moodilla on saatu oikeellisia arvoja. Nyt näyttäisi, että jostain syystä tässä mainitussa liittymässä indeksointi ei mene Modbus-speksin mukaan. Korjaus pitää siis tehdä korkeammalle tasolle. Kokkaan uuden version, ehkä konfiguroitavaksi vielä tuo asia, että joko FIX on päällä tai ei.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Muutoksesi todensi asian tässä, muttei ole kestävä. Modbus-speksi määrittelee nimenomaan niin, että kun kysytään dataelementtiä n, niin protokolla-PDU:hun tulee osoite n-1.
Ref: http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf kohta "4.4 MODBUS Addressing model".

Nyt nuo dataelementit on listattu Enerventin dokkarin EDA_Modbus_Registers_2011_09_14.pdf mukaisesti, jossa esim. holdingregister 6 sisältää tiedon "3x0006 Fresh air temperature X1". Aiemmin tuolla TCP-EDA-liitynnällä sekä tällä SLAVE-moodilla on saatu oikeellisia arvoja. Nyt näyttäisi, että jostain syystä tässä mainitussa liittymässä indeksointi ei mene Modbus-speksin mukaan. Korjaus pitää siis tehdä korkeammalle tasolle. Kokkaan uuden version, ehkä konfiguroitavaksi vielä tuo asia, että joko FIX on päällä tai ei.

ok
kokeilin aikaisemmin omalla python scriptillä käyttäen minimalmodbus (v0.7) kirjastoa https://github.com/pyhys/minimalmodbus/blob/master/minimalmodbus.py.
En tutkinut sen tarkemmin toteuttaako se speksiä tarkalleen, mutta sillä jos kysyi esim. 10 holdinregisteriä alkean rekisteristä 6, ( "3x0006) palautti se rekisteiden datan ok. ei ollut off-by-one
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

atnu sanoi:
ok
kokeilin aikaisemmin omalla python scriptillä käyttäen minimalmodbus (v0.7) kirjastoa https://github.com/pyhys/minimalmodbus/blob/master/minimalmodbus.py.
En tutkinut sen tarkemmin toteuttaako se speksiä tarkalleen, mutta sillä jos kysyi esim. 10 holdinregisteriä alkean rekisteristä 6, ( "3x0006) palautti se rekisteiden datan ok. ei ollut off-by-one

Nyt on samassa dev_201612-linkissä versio, jossa on konfiguroitavissa konffitiedostosta tuo fix päälle MASTER-modessa.

Mitä tuohon minimalmodbusiin tulee, niin sen rajapintaspeksissä sanotaan, että read_register-metodi ottaa register address:in, joka on numero välillä 0-65535. Tässä rajapinnassa siis tuohon annetaan address eikä modbus element id. Eli se varmaankin toimi juuri niinkuin speksissä sanottiin.

Isoin ihmetys siis tässä on, että aiempien jonkun tekemien testien sekä ilmeisesti sinunkin tuolla slave-koodilla tekemien testien mukaan kaikki on toiminut ok. Eli tässä kolmannessa liityntätavassa nyt sitten tuo numerointi on yhden eri kuin aiemmissa. Mutta nyt siis kierrettävissä tuolla OFFBYONEFIX = true:lla.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Nyt on samassa dev_201612-linkissä versio, jossa on konfiguroitavissa konffitiedostosta tuo fix päälle MASTER-modessa.

Mitä tuohon minimalmodbusiin tulee, niin sen rajapintaspeksissä sanotaan, että read_register-metodi ottaa register address:in, joka on numero välillä 0-65535. Tässä rajapinnassa siis tuohon annetaan address eikä modbus element id. Eli se varmaankin toimi juuri niinkuin speksissä sanottiin.

Isoin ihmetys siis tässä on, että aiempien jonkun tekemien testien sekä ilmeisesti sinunkin tuolla slave-koodilla tekemien testien mukaan kaikki on toiminut ok. Eli tässä kolmannessa liityntätavassa nyt sitten tuo numerointi on yhden eri kuin aiemmissa. Mutta nyt siis kierrettävissä tuolla OFFBYONEFIX = true:lla.

Käyttämällä OFFBYONEFIX = true, tulee oikeat arvot, ja false arvolla ei. joten toimivaksi nyt todettu.

Löysin logi filuja tammikuulta, aikaisemmissa taloLogger testeistä silloin kun se oli slave moodissa, keskittyminen meni CRC virheisiin ja niiden kanssa puljaamiseen niin en ollut näemmä katsonut tarkemmin datan sisältöä, mutta sielläkin näyttää että on off-by-one:lla arvot:

Koodi:
10.01.2017 16:19:00:
    freshairtemp:0.0
    supplyairtempahr:1.1
    supplyairtemp:19.8
    wasteairtemp:18.7
    exhaustairtemp:6.1
    exhaustairtempbhr:22.6
    exhaustairhumid:-400
    input:
    output:
    48hrhumid:
    abshum:
    state:
    controlsteps:

Tarvisi varmaan katsoa Enerventin emon piirilevystä mikä on versionumero. Talo on valmistunut 2012.
 
O

olammi

Vieras
Vs: taloLogger-perheen julkaisut

Ok. Eli tuo FIX-mahdollisuus pitää ehkä ulottaa kaikkeen Enervent-profiiliin.

Edit: Lisäsin OFFBYONEFIX:in vaikuttamana myös SLAVE-modeen. Pystytkö
Koodi:
atnu
testaamaan myös, että tuo toimii? Sama linkki.
 
A

atnu

Vieras
Vs: taloLogger-perheen julkaisut

olammi sanoi:
Ok. Eli tuo FIX-mahdollisuus pitää ehkä ulottaa kaikkeen Enervent-profiiliin.

Edit: Lisäsin OFFBYONEFIX:in vaikuttamana myös SLAVE-modeen. Pystytkö
Koodi:
atnu
testaamaan myös, että tuo toimii? Sama linkki.

Ehdin ehkä viikonloppuna kokeilla kun pääsen fyysisesti paikalle, pitää käydä aukaisemassa enervent ja vaihtamassa se freeway portista OP2 porttiin..
 
Back
Ylös Bottom