abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Optolink Switch (Splitter) - Vitoconnect, MQTT & TCP/IP

 

Moin ihr! 🙂

 

Optolink ist 'alt', aber noch in Benutzung (bei mir auch). Öfter gab es Anfragen zum Betrieb zu lokalen Zwecken aber trotzdem weiter das Vitoconnect für Viessmann Cloud/Vicare/Viguide/Vi.API/Garantieverlängerung zu benutzen. Dazu jetzt hier die benutzerfreundliche Lösung, natürlich wieder open-source und kostenlos:

 

der OptolinkVs2-Switch

HerrP_0-1713897747645.png

 

Er verbindet euer Optolink Gerät auf total einfache Weise mit allem was das Herz begehrt.

  • Home Automation Anbindung per MQTT
  • W/LAN Anbindung per TCP/IP und einfachen Ascii + $Hex
  • Parallelbetrieb des Vitoconnect und damit Vicare, Viguide, Viessmann API weiter nutzbar und Erhaltung der erweiterten Garantie

Kein Gehassel mit komplizierter Einrichtung und irgendwelchen kryptischen xml's. Einfach nen Raspi, ein paar Python Module draufkopiert, Optolinkadapter und bei Bedarf das Vitoconnect angesteckt, ggf. noch ein paar Anpassungen in der Settings_ini (COM Ports, IP Adressen, MQTT Passwort, Poll-Liste, ...) und los.

 

HerrP_2-1713897813860.png

 

viel Spass damit & Grüsse!

Phil 🖖

 

 

142 ANTWORTEN 142

alles vorhanden,  jetzt musst du es nur wie beschrieben identifizieren.

DP Kältekreis.PNG

Wo sehe ich die DP?

Im Vitasoft unter 

Diagnose 

Trending

   da dann aussuchen was man möchte 

   dann kommen die Trending Parameter.

So weit so gut, aber wo sehe ich dann die Adresse? 

 

Die Daten hat das Vitosoft Program im Database gespeichert. Mit diesen Query an die Database (man braucht dazu z.B. SQL Server Management Studio) kan man die Daten der leltzen Synchronisation lesen. Die DeviceId bekommt man in die Tabelle ecnDevice (Id). Die Database Dateien sind in C:\Program Files\Viessmann Vitosoft 300 SID1\ServiceTool\Database.

 

Select dev.Name, et.Address,
substring(et.address,charindex('~',et.address)+1,6) Parameter,
et.Conversion, ete.ByteLength,
case et.Type when 1 then 'R' when 2 then 'R'when 3 then'R/W' else '' end ReadWrite,
ev.Unit, ev.Stepping, ev.DataType, ev.ValuePrecision, ev.LowerBorder, ev.UpperBorder,
ev.DataType, ev.ValuePrecision, ev.LowerBorder, ev.UpperBorder,
evc.ValueType, evc.Value_Binary, evc.Value_Bit, evc.Value_DateTime,
evc.Value_Float, evc.Value_Int, evc.Value_Ntext,
string_AGG(ev.EnumAddressValue,',') as 'Values', string_AGG(ev.Description,',') as Descriptions
from ecnDevice dev
join ecnEventGroupValueCache evc on dev.Id=evc.DeviceId
join ecnEventType et on evc.EventTypeId=et.Id
join ecnEventValueType evt on evc.EventValueTypeId=evt.Id
left outer join ecnEventTypeEventValueTypeLink etvl on etvl.EventTypeId=et.Id
left outer join ecnEventValueType ev on etvl.EventValueId=ev.Id
left outer join [vsmEventTypeExtension] ete on ete.EventTypeId=et.Id
where DeviceId=x
group by dev.Name, et.Address,
substring(et.address,charindex('~',et.address)+1,6),
et.Conversion, case et.Type when 1 then 'R' when 2 then 'R'when 3 then'R/W' else '' end,
ete.ByteLength, et.DefaultValue, ev.Unit, ev.Stepping, ev.DataType, ev.ValuePrecision, ev.LowerBorder, ev.UpperBorder,
evc.ValueType, evc.Value_Binary, evc.Value_Bit, evc.Value_DateTime,
evc.Value_Float, evc.Value_Int, evc.Value_Ntext, ev.DataType, ev.ValuePrecision, ev.LowerBorder, ev.UpperBorder
Order by Parameter;

 

Puh,

da bin ich raus. Ich habe das Programm nicht. 

Dann muss ich damit Leben was ich an Adressen habe. Oder ich sammle alle Daten und schicke das Datenbank File wem der damit umgehen kann.

Das ist im Handbuch beschrieben:

 

ich bin nicht sicher ob du die Adressen schon bei "Info" Level bekommt oder erst bei "Debug"

 

VG 

Debug_Vitosoft.PNG

SQL Server Management Studio kan man kostenlos dowloaden: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-serve...

Es fragt aber etwas Zeit damit arbeiten zu können.

Das hatte Phil doch eigentlich schon so gemacht, oder?

Dann müsste die ja auch indem Excel von Phil sein. oder es gibt noch eine 2. Tabelle im SQL, die wir noch nicht gefunden haben.

Diese Query gibt die Werte die tatsächlich vom Anlage gelesen sind. Die Query im Wiki kan laufen ohne dass das Vitosoft Programm je met dem Anlage verbunden war. Deshalb kan ich damit für jede Anlagetyp (vom Vitosoft unterstützt) eine Parametertabelle machen.

So Programm runtergeladen und installiert.

Aber keine Ahnung wie ich die Files aufmachen kann. 

Sind das überhaupt die?

Pfad wie oben beschrieben:

C:\Program Files\Viessmann Vitosoft 300 SID1\ServiceTool\Database.

 

BP77_0-1731686376475.png

 

@HerrP 

@FransO 

könntet ihr bitte in einer für Dummys verständlichen Anleitung erklären wie man z.b.

41 05 00 01 84 0A 03 C7 umrechnet was das für eine Adresse ist.

 

hier

https://github.com/openv/openv/issues/425

wir das teilweise erklärt, aber ich verstehe es nicht.

 

Danke

Debug_Vitosoft2.PNG

Ja, man soll mit attach database die .mdf Datei wählen.

Wie man in Phil's program lesen kan (https://github.com/philippoo66/optolink-splitter/blob/main/optolinkvs2.py)

 

outbuff = bytearray(8)

outbuff[0] = 0x41 # 0x41 Telegrammstart
outbuff[1] = 0x05 # Len Payload, hier immer 5
outbuff[2] = 0x00 # 0x00 Request Message
outbuff[3] = 0x01 # 0x01 Virtual_READ
outbuff[4] = (addr >>8) & 0xFF # hi byte
outbuff[5] = addr & 0xFF # lo byte
outbuff[6] = rdlen # Anzahl der zu lesenden Daten-Bytes
outbuff[7] = calc_crc(outbuff)

Ich habe jetzt alle deine DP aus dem Post von heute um 15.11.2024 12:18

zum laufen gebracht. 

Jetzt muss ich sie noch visualisieren. 

Das war eine große Hilfe. Danke

 

so, das habt ihr ja wunderbar gemacht, während ich unterwegs war, meinem Vater seine Tabletten zusammenzusortieren... vielen Dank @FransO  und @qwert089 !!

 

falls es trotzdem noch interessiert

>> könntet ihr bitte in einer für Dummys verständlichen Anleitung erklären wie man z.b.

41 05 00 01 84 0A 03 C7 umrechnet was das für eine Adresse ist.

hier hab ich das mal gemacht, sogar bunt 😉

https://community.viessmann.de/t5/Waermepumpe-Hybridsysteme/Datenpunkte-in-der-API-gesucht/m-p/45930...

 

vielen Dank Phil!

 

ich glaube jetzt habe ich halbwegs verstanden

 

B4 0A ist die HEISSGAS Temperatur

der  Wert ist  00 FD --> 0253 bzw 25,3 Grad wenn man es durch 10 teilt.

Das stimmt mit genau mit dem Bild von BP77 überein!

 

@BP77 dann sind doch sowieso  alle DP in der Excel Datei, oder?

 

 

 

Nein alle sind nicht drinnen.

Aber wie oben geschrieben habe ich alle DP für das Schema beisammen.

Danke an alle hier, die so Tatkräftig unterstützen.

@HerrP @FransO @qwert089  Ohne euch hätte ich das nicht geschafft. 

 

>>Nein alle sind nicht drinnen.

@BP77 

Was brauchst du noch ?

 

Jetzt wissen wir ja wie man sie rausbekommen kann, sofern man sie im Trenddiagramm auswählen kann.

Kann ich im Moment gar nicht sagen. Jetzt muss ich die mal verarbeiten. Dann geht’s weiter. 
Ihr hört dann sicher gleich von mir, was ich dann noch so brauche😉

Top-Lösungsautoren