=====================ivtlogger.py=======================
import serial #pip3 install pyserial
# https://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3-4/
import csv
INFLUXDB_TOKEN="ixSkaffaEgetTokenPåInfluxdbLKJQWELRKJQWLERJKQWLERJQWLKERJ=="
import influxdb_client, os, time
from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS

token = INFLUXDB_TOKEN
org = "per@lengquist.se"
url = "https://westeurope-1.azure.cloud2.influxdata.com"
client = influxdb_client.InfluxDBClient(url=url, token=token, org=org)
bucket="ivt"
write_api = client.write_api(write_options=SYNCHRONOUS)

field_names=['To radiators GT1','Outdoor GT2','Tap water top GT3-1','Warm water mid GT3-2','Warm water bottom GT3-3','field6','Hot gas GT6','field8','Pressure guard defrost','High pressure','Low pressure','Vacation state on','Compressor active','Schunt Opening SV1','Schunt Closing SV1','Radiator pump P1','Fan','Alarm','Extern P2','LLT GT1','LL GT1','Target Radiator out GT1','UL GT1','LL GT3:2','ULT GT3:2','UL GT3:2','LL GT3:3','BV GT3:3','SV3 BV Foerskj','Effekt ink vit VV behov','Tillskotstimer VV behov','Tappv prio','Elpatron varme','Tillskott rad','Elpatron extra vv','Default SV2 Open']

with open('ivtdata.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(field_names)
ser = serial.Serial ("/dev/ttyS0", 9600) #Use raspi-config to enable serial and disable serial console.
# https://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3-4/
while True:
received_data = ser.readline()
print(received_data)
s = received_data.decode('ascii')
#print(s)
values=[]
for x in s.split(';'):
values.append(int(x.strip()))
#print (values)
writer.writerow(values)
f.flush()
write_api.write(bucket=bucket, org=org, record=[
Point("Heating").field("heating", values[1]/10),
Point("Outdoor").field("outdoor", values[2]/10),
Point("Compressor").field("compressor", values[7]/10),
Point("Compresson On").field("comp_on", values[13]),
Point("SV1 Open").field("sv1_open", values[14]),
Point("SV1 Close").field("sv1_close", values[15]),
Point("DesiredHeating").field("desired_heating", values[22]/10)])

write_api.write(bucket=bucket, org=org, record=[
Point("Heatpump").field("Sekvensnr", values[0]),
Point("Heatpump").field("To radiators GT1", values[1]),
Point("Heatpump").field("Outdoor GT2", values[2]),
Point("Heatpump").field("Tap water top GT3-1", values[3]),
Point("Heatpump").field("Warm water mid GT3-2", values[4]),
Point("Heatpump").field("Warm water bottom GT3-3", values[5]),
Point("Heatpump").field("field6", values[6]),
Point("Heatpump").field("Hot gas GT6", values[7]),
Point("Heatpump").field("field8", values[8]),
Point("Heatpump").field("Pressure guard defrost", values[9]),
Point("Heatpump").field("High pressure", values[10]),
Point("Heatpump").field("Low pressure", values[11]),
Point("Heatpump").field("Vacation state on", values[12]),
Point("Heatpump").field("Compressor active", values[13]),
Point("Heatpump").field("Shunt Opening SV1", values[14]),
Point("Heatpump").field("Shunt Closing SV1", values[15]),
Point("Heatpump").field("Radiator pump P1", values[16]),
Point("Heatpump").field("Fan", values[17]),
Point("Heatpump").field("Alarm", values[18]),
Point("Heatpump").field("Extern P2", values[19]),
Point("Heatpump").field("LLT GT1", values[20]),
Point("Heatpump").field("LL GT1", values[21]),
Point("Heatpump").field("Target Radiator out GT1", values[22]),
Point("Heatpump").field("UL GT1", values[23]),
Point("Heatpump").field("LL GT3:2", values[24]),
Point("Heatpump").field("ULT GT3:2", values[25]),
Point("Heatpump").field("UL GT3:2", values[26]),
Point("Heatpump").field("LL GT3:3", values[27]),
Point("Heatpump").field("BV GT3:3", values[28]),
Point("Heatpump").field("SV3 BV Foerskj", values[29]),
Point("Heatpump").field("Effekt ink vit VV behov", values[30]),
Point("Heatpump").field("Tillskotstimer VV behov", values[31]),
Point("Heatpump").field("Tappv prio", values[32]),
Point("Heatpump").field("Elpatron varme", values[33]),
Point("Heatpump").field("Tillskott rad", values[34]),
Point("Heatpump").field("Elpatron extra vv", values[35]),
Point("Heatpump").field("Default SV2 Open", values[36]) ])
print("Posted!")


======================ivtlogger.service================================
[Unit]
Description=Read IVT log data over UART and post to InfluxDB
After=network.target

[Service]
User=pi
ExecStart=/usr/bin/python3 /home/pi/ivt_logger.py
Restart=always
WorkingDirectory=/home/pi/


[Install]
WantedBy=multi-user.target


## located in /lib/systemd/system/ivt_logger.service
 
Redigerat:
  • Gilla
Sp1nd3l och 1 till
  • Laddar…
Jag behövde konvertera spänningsnivåerna för den seriella kommunikationen mellan värmepumpens kontrollerkort och Raspberryins GPIO-ingång. Löste det med en transistor och två resistorer.
Minns inte exakt hur jag kopplade, men prata med någon som kan lite om transistorer och seriella protokoll (tex skillnad mellan RS-232 och UART). Det var inte avancerat.


Här är lite blandade anteckningar jag gjorde när jag konfigurerade raspberryn och skrev koden:


https://manpages.debian.org/testing/systemd/systemd.service.5.en.html

journalctl -u ivt_logger
sudo service ivt_logger restart





pip install pyserial
sudo pip3 install pyserial
sudo pip3 install wiringpi
pip3 install influxdb-client
nohup python3 serial_readline.py > nohup2.out &

export INFLUXDB_TOKEN=ixqSkaffaEnEgenTokenPåInfluxdbLKJWROIWUEROIUAWDFIAWECCJOQWEEFIJ==

sudo service ivt_logger restart


https://blog.usedbytes.com/2019/11/run-at-startup-without-rc.local/
https://github.com/raspberrypi/docu...22fb56b30e4d62c5ccba24/linux/usage/systemd.md
 
  • Närbild av en GPIO-anslutning med flerledarkabel ansluten till kretskortet på värmepumpens kontrollerkort.
    Inloggade ser högupplösta bilder
    Skapa konto
    Gratis och tar endast 30 sekunder
  • Närbild på Raspberry Pi Zero med anslutna kablar, en transistor och en resistor, använd vid kommunikation med en värmepumpskontroller.
    Inloggade ser högupplösta bilder
    Skapa konto
    Gratis och tar endast 30 sekunder
  • Seriell kabel ansluten till värmepumpens styrenhet med handskriven etikett som beskriver reservcirkulationspumpens placering, oktober 2020.
    Inloggade ser högupplösta bilder
    Skapa konto
    Gratis och tar endast 30 sekunder
  • En hand håller i ett Raspberry Pi-kort med anslutna kablar, en resistor och en mikro-SD-kortlösning.
    Inloggade ser högupplösta bilder
    Skapa konto
    Gratis och tar endast 30 sekunder
  • Närbild av en hand som håller ett kopplingsschema med en transistor och två resistorer anslutna till ett grönt kretskort.
    Inloggade ser högupplösta bilder
    Skapa konto
    Gratis och tar endast 30 sekunder
  • Gilla
Sp1nd3l
  • Laddar…
Om du sparar data på SD-kortet så kommer det inte att överleva längre än något år. Jag har därför en ESP i min IVT (ren spänningsdelning från 5V till 3,3V). Sedan läser jag in all data till en Raspberry pi med SSD centralt istället. Och skaffar du dig en ESP på har du två saker att styra med reläer också:
- sommardrift (kortslutning av två skruvplintar). Undviker att dra igång värmen i onödan.
- gt 3:2 (tempsensor i tanken) som du kan växla mellan 65°C och verklig temperatur. Det är denna som styr när kompressorn går igång. Perfekt om man vill styra kompressorn till billiga timmar.

Läs mer om hur du gör detta tidigare i tråden...
 
Redigerat:
pacman42 pacman42 skrev:
Om du sparar data på SD-kortet så kommer det inte att överleva längre än något år.
Om du syftar på min kod är det bara att ta bort raden:
writer.writerow(values)
så sparas mätdata bara på Influxdb. Det är en molntjänst så då används SD-kortet minimalt.

Intressant att styra om tempsensorer för att få IVTn att dra mindre el när det är dyrt. Måste man inte styra om både GT3:2 och utomhussensorn, så att den tror att varken varmvatten eller värmevatten behövs? Jag ska leta upp den diskussionen tidigare i tråden, låter intressant.

För övrigt gissar jag att det som går att styra med en ESP32 även går att styra med en Raspberrrys GPIO. Jag gillar egentligen microcontrollers bättre än Raspberry, men en Rasp kändes lättare att använda när man ska anropa ett API över HTTP.
 
Värmen styrs via semesterläge, dvs kortslutning av två skruvplintar. Så man behöver inte styra utetemperaturen.

Det finns bra http-bibliotek till ESP också. Jag har dock en central hjärna på en Raspberry som styr hela huset. Jag gillar att ha dumma klienter
 
  • Gilla
p70
  • Laddar…
S
A ArttuP skrev:
Vilken typ och hur många kanalrelä har du? Jag har ESP-baserat Sonoff-relä och jag använder 1 kanal för att styra GT3 temperatursensor. I teorin bör anslutningar av bifogad bild fungera. Men rent praktiskt är jag inte säker.
Vågade du gå vidare med den här lösningen? Min fläkt stod inställd på 150V. Testade både 180V och 230V manuellt genom att flytta kabeln men det blev ingen märkbar skillnad så för mig skulle det inte förbättra något att kunna styra hastigheten. Det kan ju vara värt för dig att testa manuellt först för att se om du märker någon skillnad, annars antar jag att fläkten i IVT 490 helt enkelt är för klen för att kunna forcera ventilationen rejält som man skulle vilja ibland.
 
S Sp1nd3l skrev:
Vågade du gå vidare med den här lösningen? Min fläkt stod inställd på 150V. Testade både 180V och 230V manuellt genom att flytta kabeln men det blev ingen märkbar skillnad så för mig skulle det inte förbättra något att kunna styra hastigheten. Det kan ju vara värt för dig att testa manuellt först för att se om du märker någon skillnad, annars antar jag att fläkten i IVT 490 helt enkelt är för klen för att kunna forcera ventilationen rejält som man skulle vilja ibland.
Jag tänker ju tvärtom, dvs att jag ställer ned den när ingen är hemma och om det är tillräckligt torrt i badrummen.
 
S
pacman42 pacman42 skrev:
Jag tänker ju tvärtom, dvs att jag ställer ned den när ingen är hemma och om det är tillräckligt torrt i badrummen.
Ja, åt det hållet verkar det ju fungera.
 
S Sp1nd3l skrev:
Något du kan utveckla lite hur det är uppsatt med vilken hårdvara osv?

Vi har nämligen en IVT 490 som jag skulle vilja styra fläkthastigheten med. Det finns ju 1-6 lägen (115V, 125V, 135V, 150V, 180V, 230V) men jag är lite osäker på vad som krävs för att kunna styra dessa. Idag sitter det ju en transformator som man manuellt måste flytta kontakten för att ändra hastighet (se bilder).

Syftet är främst att höja fläkthastigheten när det är flera personer i huset som gör att CO2-värden är lite väl höga (jag har Aranet4 CO2-mätare). Då vill jag öka fläkthastigheten. Har Home Assistant så någon lösning med Z-wave, Zigbee, Bluetooth, Wifi är att föredra, som går att styra från Home Assistant.

Vill ha minst 3 lägen (ingen hemma, 2 personer, Fler än 2 personer), men skulle kunna klara mig med 2 lägen (2 personer/Normal-läge, Fler än 2 personer/Högre hastighet).

Några förslag? Har inga problem att sätta upp det i Home Assistant, det enda jag behöver är möjligheten att i princip kunna säga i vilket läge fläkten ska vara i. Mest optimalt vore ju att kunna ha alla 1-6 lägen som finns manuellt idag men att jag kan styra vilket läge den ska vara i.
Jag har bytt från 495 till en GEO med VBX box. VBX boxen verkar ha samma transformator för fläktstyrning som 490 maskinen, här har du hur jag kopplade för min VBX box.
https://github.com/stefanh12/HA/tree/main/ivt-vbx
 
Vad behöver jag för att få temperaturerna, både Nu och Bör, till Home Assistant som ligger på en Elite desk?
Kan jag få datan via nätverkskabel då det är lite taskig mottagning i pannrummet men cat kabel kan jag dra dit, är kanske 15-20m kabel
 
nino nino skrev:
Vad behöver jag för att få temperaturerna, både Nu och Bör, till Home Assistant som ligger på en Elite desk?
Kan jag få datan via nätverkskabel då det är lite taskig mottagning i pannrummet men cat kabel kan jag dra dit, är kanske 15-20m kabel
https://github.com/stefanh12/IVT_490_esphome
 
  • Gilla
nino
  • Laddar…
Det går att sätta ethernet-uttag på en ESP också. Jag har satt en WiFi-AP som repeater istället.
 
pacman42 pacman42 skrev:
Det går att sätta ethernet-uttag på en ESP också. Jag har satt en WiFi-AP som repeater istället.
Ja jag har en sån extender men tycker den är opålitlig...
Har hyfsad mottagning på mobilen i pannrummet men Shelly enheterna gick offline då och då, nu funkar det bättre med extendern.
 
T t3o skrev:
Jag kör en D1 mini som drivs av styrkortet. Det driver också 3 reläer som styr fläkt, utetemperatur och vattentemperatur. Kan tyvärr inte läsa datat från pannan då jag har en av de gamla versionerna från 2001 som inte stödjer datadumpning. Har automatiserat detta med homey och fuktmätare i badrummen och tanken är väl att integrera med min D1 mini som jag tryckt in i elmätaren och köra på billiga elpriser eller när solen producerar. Nu på sommarhalvåret då kör den mellan 11-18 och värmer vatten till 60 grader vilket täcker för oss fyra i hushållet. I vinter antar jag att den måste gå mestadels av tiden men att man styr den att inte köra vid högsta elpriserna som den alltid går för sig att göra.
Hmm jag har också en tidig rego 600, från 99-01 nånstans där.
Måste höra med min lokala ivt gubbe om det finns ett styrkort jag kan köpa och byta i min
 
nino nino skrev:
Hmm jag har också en tidig rego 600, från 99-01 nånstans där.
Måste höra med min lokala ivt gubbe om det finns ett styrkort jag kan köpa och byta i min
Är det värt det med risken för plötslig död på pumpen? Jag försöker hålla min vid liv så länge som möjligt, men den börjar närma sig time-of-death...
 
Vi vill skicka notiser för ämnen du bevakar och händelser som berör dig.