Nun kommt Bewegung in die Sache. 
Die ObjektIDs die ich hier verwende, sind die aus meinem IPSymcon. In deiner Installation werden das andere sein!
Ich habe das ganze jetzt noch einmal erweitert. Es dürften jetzt alle möglichen Umrechnungen in der wpClass vorhanden sein.
Aufgrund der Fülle an Daten und der Tatsache geschuldet, das bei weitem nicht alle Datenfelder identifiziert sind, habe ich mich dazu entschieden ersteinmal ALLE Daten in einem separaten Ordner innerhalb der IPSymcon aufzunehmen. Diesen habe ich selbsterklärend alle Werte bezeichnet. Die ObjektID dieses Ordners habe ich dann in der wpValueConfiguration allen Variablen als ParentID zugewiesen.
Außerdem habe ich erst einmal ALLEN Variablen den Datentyp String gegeben. Nach dem ersten Start des Scriptes wpWorking füllte sich dann der Ordner alle Werte. Nachdem ich einen Wert zweifelsfrei identifizieren konnte, habe ich in der Datei wpValueConfiguration die ParentID der identifizierte Variabeln in die ObjektID des Ordners identifizierte Werte geändert.
Damit wird der Wert in den neuen Ordner geschrieben und aktualisiert. Aus dem Ordner alle Werte kann dieser jetzt getrost gelöscht werden.
Schaut dann so aus…
Durch diese Verfahrensweise ist es mir leichter gefallen, den Überblick zu behalten.
Identifizierte Werte habe ich dann per Link/Verknüpfung innerhalb der IPSymcon dahin verlinkt, wo ich den Wert haben will und die Bezeichnung meinen Wünschen entsprechend angepasst. Macht das nicht in der wpValue! Ihr kommt am Ende durcheinander, da es Bezeichnungen geben kann, die dann doppelt vorkommen. Zack, Überblick verloren. Herzlichen Glückwunsch. (eigene Erfahrung)
An der Verfahrensweise mit den vProfilen (VariablenProfilen) und den uProfilen (Umrechnungsprofilen) hat sich nichts geändert. Jede Variable kann dort eingeordnet werden. Die Profile habe ich jetzt, nachdem ich meine WP (AlphaInnotec) vollständig ausgelesen habe, erweitert. Bezeichnungen stehen jeweils in den Kommentaren.
Die aktualisierten Scripte hänge ich jetzt nocheinmal an.
Hier die erweiterten Scripte. An der wpWorking sowie der wpCommunication hat sich nichts geändert.
wpValue
<?php
$dataSet = array(
"0","1","2","3",
"4",
"5",
"6",
"7",
"8",
"9",
"Temperatur_TVL", //temperatur vorlauf
"Temperatur_TRL", //temperatur rücklauf
"Sollwert_TRL_HZ", //temperatur sollwert rücklauf heizung
"Temperatur_TRL_ext",
"Temperatur_THG",
"Temperatur_TA", //temperatur aussenfühler
"Mitteltemperatur", //temperatur mittel
"Temperatur_TBW", //temperatur
"Einst_BWS_akt",
"Temperatur_TWE",
"Temperatur_TWA",
"Temperatur_TFB1",
"Sollwert_TVL_MK1", //temperatur sollwert vorlauf mischkreis 1
"Temperatur_RFV",
"Temperatur_TFB2",
"Sollwert_TVL_MK2", //temperatur sollwert vorlauf mischkreis 2
"Temperatur_TSK",
"Temperatur_TSS",
"Temperatur_TEE",
"ASDin",
"BWTin",
"EVUin",
"HDin",
"MOTin",
"NDin",
"PEXin",
"SWTin",
"AVout",
"BUPout",
"HUPout",
"MA1out",
"MZ1out",
"VENout",
"VBOout",
"VD1out",
"VD2out",
"ZIPout",
"ZUPout",
"ZW1out",
"ZW2SSTout",
"ZW3SSTout",
"FP2out",
"SLPout",
"SUPout",
"MZ2out",
"MA2out",
"Zaehler_BetrZeitVD1",
"Zaehler_BetrZeitImpVD1",
"Zaehler_BetrZeitVD2",
"Zaehler_BetrZeitImpVD2",
"Zaehler_BetrZeitZWE1",
"Zaehler_BetrZeitZWE2",
"Zaehler_BetrZeitZWE3",
"Zaehler_BetrZeitWP",
"Zaehler_BetrZeitHz",
"Zaehler_BetrZeitBW",
"Zaehler_BetrZeitKue",
"Time_WPein_akt", //wp läuft seit
"Time_ZWE1_akt",
"Time_ZWE2_akt",
"Timer_EinschVerz",
"Time_SSPAUS_akt", //schaltspielsperre
"Time_SSPEIN_akt", //schaltspielsperre
"Time_VDStd_akt", //verdichter steht seit
"Time_HRM_akt",
"Time_HRW_akt",
"Time_LGS_akt",
"Time_SBW_akt",
"Code_WP_akt",
"BIV_Stufe_akt",
"WP_BZ_akt",
"SoftStand1",
"SoftStand2",
"SoftStand3",
"SoftStand4",
"SoftStand5",
"SoftStand6",
"SoftStand7",
"SoftStand8",
"SoftStand9",
"SoftStand10",
"AdresseIP_akt",
"SubNetMask_akt",
"Add_Broadcast",
"Add_StdGateway",
"ERROR_Time0",
"ERROR_Time1",
"ERROR_Time2",
"ERROR_Time3",
"ERROR_Time4",
"ERROR_Nr0",
"ERROR_Nr1",
"ERROR_Nr2",
"ERROR_Nr3",
"ERROR_Nr4",
"AnzahlFehlerInSpeicher",
"Switchoff_file_Nr0",
"Switchoff_file_Nr1",
"Switchoff_file_Nr2",
"Switchoff_file_Nr3",
"Switchoff_file_Nr4",
"Switchoff_file_Time0",
"Switchoff_file_Time1",
"Switchoff_file_Time2",
"Switchoff_file_Time3",
"Switchoff_file_Time4",
"Comfort_exists",
"HauptMenuStatus_Zeile1",
"HauptMenuStatus_Zeile2",
"HauptMenuStatus_Zeile3",
"HauptMenuStatus_Zeit",
"HauptMenuAHP_Stufe",
"HauptMenuAHP_Temp",
"HauptMenuAHP_Zeit",
"SH_BWW",
"SH_HZ",
"SH_MK1",
"SH_MK2",
"Einst_Kurzrpgramm",
"StatusSlave_1",
"StatusSlave_2",
"StatusSlave_3",
"StatusSlave_4",
"StatusSlave_5",
"AktuelleTimeStamp",
"SH_MK3",
"Sollwert_TVL_MK3",
"Temperatur_TFB3",
"MZ3out",
"MA3out",
"FP3out",
"Time_AbtIn",
"Temperatur_RFV2",
"Temperatur_RFV3",
"SH_SW",
"Zaehler_BetrZeitSW",
"FreigabKuehl",
"AnalogIn",
"SonderZeichen",
"SH_ZIP",
"WebsrvProgrammWerteBeobarten",
"WMZ_Heizung",
"WMZ_Brauchwasser",
"WMZ_Schwimmbad",
"WMZ_Seit",
"WMZ_Durchfluss",
"AnalogOut1",
"AnalogOut2",
"Time_Heissgas",
"Temp_Lueftung_Zuluft",
"Temp_Lueftung_Abluft",
"Zaehler_BetrZeitSolar",
"AnalogOut3",
"AnalogOut4",
"Out_VZU",
"Out_VAB",
"Out_VSK",
"Out_FRH",
"AnalogIn2",
"AnalogIn3",
"SAXin",
"SPLin",
"Compact_exists",
"Durchfluss_WQ",
"LIN_exists",
"LIN_ANSAUG_VERDAMPFER",
"LIN_ANSAUG_VERDICHTER",
"LIN_VDH",
"LIN_UH", //temperaturen überhitzung in kelvin
"LIN_UH_Soll",
"LIN_HD", //hd in bar
"LIN_ND", //nd in bar
"LIN_VDH_out",
"HZIO_PWM",
"HZIO_VEN",
"HZIO_EVU2",
"HZIO_STB",
"SEC_Qh_Soll",
"SEC_Qh_Ist",
"SEC_TVL_Soll",
"SEC_Software",
"SEC_BZ",
"SEC_VWV",
"SEC_VD",
"SEC_VerdEVI",
"SEC_AnsEVI",
"SEC_UEH_EVI",
"SEC_UEH_EVI_S",
"SEC_KondTemp",
"SEC_FlussigEx",
"SEC_UK_EEV",
"SEC_EVI_Druck",
"SEC_U_Inv",
"Temperatur_THG_2",
"Temperatur_TWE_2",
"LIN_ANSAUG_VERDAMPFER_2",
"LIN_ANSAUG_VERDICHTER_2",
"LIN_VDH_2",
"LIN_UH_2",
"LIN_UH_Soll_2",
"LIN_HD_2",
"LIN_ND_2",
"HDin_2",
"AVout_2",
"VBOout_2",
"VD1out_2",
"LIN_VDH_out_2",
"Switchoff2_Nr0",
"Switchoff2_Nr1",
"Switchoff2_Nr2",
"Switchoff2_Nr3",
"Switchoff2_Nr4",
"Switchoff2_Time0",
"Switchoff2_Time1",
"Switchoff2_Time2",
"Switchoff2_Time3",
"Switchoff2_Time4",
"RBE_RT_Ist",
"RBE_RT_Soll",
"Temperatur_BW_oben",
"Code_WP_akt_2",
"Freq_VD", //frequenz verdichter soll
"UNBEKANNT01",
"UNBEKANNT02",
"UNBEKANNT03",
"UNBEKANNT04",
"UNBEKANNT05", //frequenz verdichter ist
"UNBEKANNT06",
"UNBEKANNT07",
"UNBEKANNT08",
"UNBEKANNT09",
"AUSGANG_HUP", //ausgang hup
"UNBEKANNT11",
"UNBEKANNT12",
"UNBEKANNT13",
"UNBEKANNT14",
"UNBEKANNT15",
"UNBEKANNT16",
"UNBEKANNT17",
"UNBEKANNT18",
"UNBEKANNT19",
"UNBEKANNT20",
"UNBEKANNT21",
"UNBEKANNT22",
"EINGANG_DURCHFLUSS", //durchfluss l/h
"UNBEKANNT24",
"UNBEKANNT25",
"STATUS_LEISTUNG", //aktuelle Leistung in kw
"UNBEKANNT27",
"UNBEKANNT28",
);
wpValueConfiguration
<?php
//variablentypen
//jeder wert den man von der wärmepumpe in die ipsymcon übernehmen möchte MUSS hier eine variablendefinition bekommen
//es MUSS also festgelegt werden, um welchen typ von variable es sich in der ipsymcon handeln soll
//das array brauch nicht erweitert werden, ipsymcon kennt (aktuell) nur 4 variablentypen
$vType = array(
'variableBoo' => array(), //variablentyp boolean
'variableInt' => array(), //variablentyp integer
'variableFlo' => array(), //variablentyp float
'variableStr' => array(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,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,258,259), //variablentyp string
);
//variablenprofile
//jeder wert den man von der wärmepumpe in die ipsymcon übernehmen möchte KANN hier ein variablenprofil bekommen
//es KANN also festgelegt werden, wie die werte in der ipsymcon optisch dargestellt werden
//das array könnte jetzt unendlich mit eigenen profilen erweitert werden
$vProfile = array(
'WPTemperatur' => array(), //präfix °C
'WPEinAus' => array(), //kein präfix sondern farblich ein/aus
'WPBetriebsstunden' => array(), //präfix h
'WPKilowattstunden' => array(), //präfix kWh
'WPDruck' => array(), //präfix bar
'WPLiterStunde' => array(), //präfix l/h
'WPKilowatt' => array(), //präfix KW
'WPProzent' => array(), //präfix %
'WPKelvin' => array(), //präfix K
'WPFrequenz' => array(), //präfix Hz
);
//umrechnungsprofile
//jeder wert den man von der wärmepumpe in die ipsymcon übernehmen möchte KANN hier ein umrechnungsprofil bekommen
//es KANN also festgelegt werden, ob der übermittelte rohwert noch bearbeitet werden muss
//das array kann jetzt unendlich mit eigenen profilen erweitert werden
$uProfile = array(
'uProfileTemp' => array(), //umrechnung wert multiplizieren mit 0.1, 2 nachkommastellen
'uProfileTimeToHours' => array(), //umrechnung wert teilen durch 3600, 2 nachkommastellen
'uProfileMDHis' => array(), //formatiereung zu 00:00:00
'uProfileWPZust' => array(), //ermittlt mithilfe des codes den zustand der wp
'uProfileDMYHIS' => array(), //formatiereung zu tag.monat.jahr Stunden:minute:sekunde
'uProfileDruck' => array(), //umrechnung wert teilen durch 100, 4 nachkommastellen
'uProfileELeistung' => array(), //umrechnung wert teilen durch 1000, 2 nachkommastellen
'uProfileKwh' => array(), //umrechnung wert teilen durch 10, 2 nachkommastellen
'uProfileKw' => array(), //umrechnung wert teilen durch 10, 2 nachkommastellen
'uProfileWPKelvin' => array(), //umrechnung wert teilen durch 10, 2 nachkommastellen
);
$array = array();
for($i=0; $i<=$valueCount; $i++){ //valueCount kommt aus der wpcommunication und enthält nur den wert der von der wp übermittelten anzahl an datenfelder
$array[$i] = $wpClass->getStdObj(); //erstelle erst einmal das standardobjekt
$array[$i]->Name = $dataSet[$i]; //weise diesem nun einen namen zu, der name steht in der wpValue
$array[$i]->Profile = $wpClass->getProfiles($vProfile, $i); //hole das passende variablen profil damit es in der symcon optisch hübsch dargestellt wird
$array[$i]->UmrechnungTyp = $wpClass->getProfiles($uProfile, $i); //hole das passende umrechnungs profil
$array[$i]->VariablenTyp = $wpClass->getProfiles($vType, $i); //hole das passende variablen type profil, also string, float, etc...
}
//wird ein spezifischer wert, den die wp über die datenschnittstelle liefert, zur auswertung gewünscht, so ist es erforderlich
//diesem wert hier eine parentID zu geben. standardmäßig ist die parentID immer false, wird also in der auswertung nicht
//berücksichtigt. die parentID gibt an unter welchem ip symcon objekt der wert eingeordnet werden soll.
//temperaturen
$array[0]->SetParent = 12476;
$array[1]->SetParent = 12476;
$array[2]->SetParent = 12476;
$array[3]->SetParent = 12476;
$array[4]->SetParent = 12476;
$array[5]->SetParent = 12476;
$array[6]->SetParent = 12476;
$array[7]->SetParent = 12476;
$array[8]->SetParent = 12476;
$array[9]->SetParent = 12476;
$array[10]->SetParent = 12476;
$array[11]->SetParent = 12476;
$array[12]->SetParent = 12476;
$array[13]->SetParent = 12476;
$array[14]->SetParent = 12476;
$array[15]->SetParent = 12476;
$array[16]->SetParent = 12476;
$array[17]->SetParent = 12476;
$array[18]->SetParent = 12476;
$array[19]->SetParent = 12476;
$array[20]->SetParent = 12476;
$array[21]->SetParent = 12476;
$array[22]->SetParent = 12476;
$array[23]->SetParent = 12476;
$array[24]->SetParent = 12476;
$array[25]->SetParent = 12476;
$array[26]->SetParent = 12476;
$array[27]->SetParent = 12476;
$array[28]->SetParent = 12476;
//eingaenge
$array[29]->SetParent = 12476;
$array[30]->SetParent = 12476;
$array[31]->SetParent = 12476;
$array[32]->SetParent = 12476;
$array[33]->SetParent = 12476;
$array[34]->SetParent = 12476;
$array[35]->SetParent = 12476;
$array[36]->SetParent = 12476;
//ausgänge
$array[37]->SetParent = 12476;
$array[38]->SetParent = 12476;
$array[39]->SetParent = 12476;
$array[40]->SetParent = 12476;
$array[41]->SetParent = 12476;
$array[42]->SetParent = 12476;
$array[43]->SetParent = 12476;
$array[44]->SetParent = 12476;
$array[45]->SetParent = 12476;
$array[46]->SetParent = 12476;
$array[47]->SetParent = 12476;
$array[48]->SetParent = 12476;
$array[49]->SetParent = 12476;
$array[50]->SetParent = 12476;
$array[51]->SetParent = 12476;
$array[52]->SetParent = 12476;
$array[53]->SetParent = 12476;
$array[54]->SetParent = 12476;
$array[55]->SetParent = 12476;
//zaehler
$array[56]->SetParent = 12476;
$array[57]->SetParent = 12476;
$array[58]->SetParent = 12476;
$array[59]->SetParent = 12476;
$array[60]->SetParent = 12476;
$array[61]->SetParent = 12476;
$array[62]->SetParent = 12476;
$array[63]->SetParent = 12476;
$array[64]->SetParent = 12476;
$array[65]->SetParent = 12476;
$array[66]->SetParent = 12476;
//zeiten
$array[67]->SetParent = 12476;
$array[68]->SetParent = 12476;
$array[69]->SetParent = 12476;
$array[70]->SetParent = 12476;
$array[71]->SetParent = 12476;
$array[72]->SetParent = 12476;
$array[73]->SetParent = 12476;
$array[74]->SetParent = 12476;
$array[75]->SetParent = 12476;
$array[76]->SetParent = 12476;
$array[77]->SetParent = 12476;
$array[80]->SetParent = 12476;
$array[81]->SetParent = 12476;
$array[82]->SetParent = 12476;
$array[83]->SetParent = 12476;
$array[84]->SetParent = 12476;
$array[85]->SetParent = 12476;
$array[86]->SetParent = 12476;
$array[87]->SetParent = 12476;
$array[88]->SetParent = 12476;
$array[89]->SetParent = 12476;
$array[90]->SetParent = 12476;
$array[91]->SetParent = 12476;
$array[92]->SetParent = 12476;
$array[93]->SetParent = 12476;
$array[94]->SetParent = 12476;
$array[95]->SetParent = 12476;
$array[96]->SetParent = 12476;
$array[97]->SetParent = 12476;
$array[98]->SetParent = 12476;
$array[99]->SetParent = 12476;
$array[100]->SetParent = 12476;
$array[101]->SetParent = 12476;
$array[102]->SetParent = 12476;
$array[103]->SetParent = 12476;
$array[104]->SetParent = 12476;
$array[105]->SetParent = 12476;
$array[106]->SetParent = 12476;
$array[107]->SetParent = 12476;
$array[108]->SetParent = 12476;
$array[109]->SetParent = 12476;
$array[110]->SetParent = 12476;
$array[111]->SetParent = 12476;
$array[112]->SetParent = 12476;
$array[113]->SetParent = 12476;
$array[114]->SetParent = 12476;
$array[115]->SetParent = 12476;
$array[116]->SetParent = 12476;
$array[117]->SetParent = 12476;
$array[118]->SetParent = 12476;
$array[119]->SetParent = 12476;
$array[120]->SetParent = 12476;
$array[121]->SetParent = 12476;
$array[122]->SetParent = 12476;
$array[123]->SetParent = 12476;
$array[124]->SetParent = 12476;
$array[125]->SetParent = 12476;
$array[126]->SetParent = 12476;
$array[127]->SetParent = 12476;
$array[128]->SetParent = 12476;
$array[129]->SetParent = 12476;
$array[130]->SetParent = 12476;
$array[131]->SetParent = 12476;
$array[132]->SetParent = 12476;
$array[133]->SetParent = 12476;
$array[134]->SetParent = 12476;
$array[135]->SetParent = 12476;
$array[136]->SetParent = 12476;
$array[137]->SetParent = 12476;
$array[138]->SetParent = 12476;
$array[139]->SetParent = 12476;
$array[140]->SetParent = 12476;
$array[141]->SetParent = 12476;
$array[142]->SetParent = 12476;
$array[143]->SetParent = 12476;
$array[144]->SetParent = 12476;
$array[145]->SetParent = 12476;
$array[146]->SetParent = 12476;
$array[147]->SetParent = 12476;
$array[148]->SetParent = 12476;
$array[149]->SetParent = 12476;
$array[150]->SetParent = 12476;
//wärmemengenzählung
$array[151]->SetParent = 12476;
$array[152]->SetParent = 12476;
$array[153]->SetParent = 12476;
$array[154]->SetParent = 12476;
$array[155]->SetParent = 12476;
$array[156]->SetParent = 12476;
$array[157]->SetParent = 12476;
$array[158]->SetParent = 12476;
$array[159]->SetParent = 12476;
$array[160]->SetParent = 12476;
$array[161]->SetParent = 12476;
$array[162]->SetParent = 12476;
$array[163]->SetParent = 12476;
$array[164]->SetParent = 12476;
$array[165]->SetParent = 12476;
$array[166]->SetParent = 12476;
$array[167]->SetParent = 12476;
$array[168]->SetParent = 12476;
$array[169]->SetParent = 12476;
$array[170]->SetParent = 12476;
$array[171]->SetParent = 12476;
$array[172]->SetParent = 12476;
$array[173]->SetParent = 12476;
$array[174]->SetParent = 12476;
$array[175]->SetParent = 12476;
$array[176]->SetParent = 12476;
$array[177]->SetParent = 12476;
$array[178]->SetParent = 12476;
$array[179]->SetParent = 12476;
$array[180]->SetParent = 12476;
$array[181]->SetParent = 12476;
$array[182]->SetParent = 12476;
$array[183]->SetParent = 12476;
$array[184]->SetParent = 12476;
$array[185]->SetParent = 12476;
$array[186]->SetParent = 12476;
$array[187]->SetParent = 12476;
$array[188]->SetParent = 12476;
$array[189]->SetParent = 12476;
$array[190]->SetParent = 12476;
$array[191]->SetParent = 12476;
$array[192]->SetParent = 12476;
$array[193]->SetParent = 12476;
$array[194]->SetParent = 12476;
$array[195]->SetParent = 12476;
$array[196]->SetParent = 12476;
$array[197]->SetParent = 12476;
$array[198]->SetParent = 12476;
$array[199]->SetParent = 12476;
$array[200]->SetParent = 12476;
$array[201]->SetParent = 12476;
$array[202]->SetParent = 12476;
$array[203]->SetParent = 12476;
$array[204]->SetParent = 12476;
$array[205]->SetParent = 12476;
$array[206]->SetParent = 12476;
$array[207]->SetParent = 12476;
$array[208]->SetParent = 12476;
$array[209]->SetParent = 12476;
$array[210]->SetParent = 12476;
$array[211]->SetParent = 12476;
$array[212]->SetParent = 12476;
$array[213]->SetParent = 12476;
$array[214]->SetParent = 12476;
$array[215]->SetParent = 12476;
$array[216]->SetParent = 12476;
$array[217]->SetParent = 12476;
$array[218]->SetParent = 12476;
$array[219]->SetParent = 12476;
$array[220]->SetParent = 12476;
$array[221]->SetParent = 12476;
$array[222]->SetParent = 12476;
$array[223]->SetParent = 12476;
$array[224]->SetParent = 12476;
$array[225]->SetParent = 12476;
$array[226]->SetParent = 12476;
$array[227]->SetParent = 12476;
$array[228]->SetParent = 12476;
$array[229]->SetParent = 12476;
$array[230]->SetParent = 12476;
$array[231]->SetParent = 12476;
$array[232]->SetParent = 12476;
$array[233]->SetParent = 12476;
$array[234]->SetParent = 12476;
$array[235]->SetParent = 12476;
$array[236]->SetParent = 12476;
$array[237]->SetParent = 12476;
$array[238]->SetParent = 12476;
$array[239]->SetParent = 12476;
$array[240]->SetParent = 12476;
$array[241]->SetParent = 12476;
$array[242]->SetParent = 12476;
$array[243]->SetParent = 12476;
$array[244]->SetParent = 12476;
$array[245]->SetParent = 12476;
$array[246]->SetParent = 12476;
$array[247]->SetParent = 12476;
$array[248]->SetParent = 12476;
$array[249]->SetParent = 12476;
$array[250]->SetParent = 12476;
$array[251]->SetParent = 12476;
$array[252]->SetParent = 12476;
$array[253]->SetParent = 12476;
$array[254]->SetParent = 12476;
$array[255]->SetParent = 12476;
$array[256]->SetParent = 12476;
$array[257]->SetParent = 12476;
$array[258]->SetParent = 12476;
$array[259]->SetParent = 12476;
?>
wpClass
<?php
class getProfiles{
function __construct(){
//hier gibt es vorlaeufig noch nichts zu tun
}
function getProfile($i, $k, $v){ //ermittle das variablenprofil
return ((in_array($i, $v)) ? ($k) : (FALSE)); //bei erfolg wird der name des profils zurück gegeben, sonst false
}
function getProfiles($profile, $value){
foreach($profile as $k => $v){ //durchlaufe die variablenprofile
$found = self::getProfile($value, $k, $v); //wenn das profil gefunden wurde ...
if($found != FALSE) //... wird ja kein false zurück geliefert ...
break; //... dann brich den weiteren verlauf der schleife ab
}
return $found;
}
function getStdObj(){ //erstelle ein standardisiertes objekt
$obj = new stdClass();
$obj->Name = FALSE;
$obj->SetParent = FALSE;
$obj->UmrechnungTyp = FALSE;
$obj->Profile = FALSE;
$obj->VariablenTyp = FALSE;
return $obj;
}
function setVariable($array, $i){ //variable in ipsymcon erstellen wenn nicht vorhanden
if(@IPS_GETVARIABLEIDBYNAME($array[$i]->Name, $array[$i]->SetParent) == FALSE){
if($array[$i]->SetParent != FALSE){
$var = IPS_CreateVariable(self::getIPSymconVariablenType($array[$i]->VariablenTyp)); //variablentyp festelegen
IPS_SetName($var, $array[$i]->Name); //variable benennen
IPS_SetParent($var, $array[$i]->SetParent); //variable einsortieren unter dem objekt setparent
IPS_SetPosition($var, $i); //variable eine position zuweisen
(($array[$i]->Profile != FALSE) ? (IPS_SETVARIABLECUSTOMPROFILE($var, $array[$i]->Profile)) : (FALSE)); //variablenprofil zuordnen
}
}
}
function getIPSymconVariablenType($data){
if($data == 'variableBoo') return 0;
if($data == 'variableInt') return 1;
if($data == 'variableFlo') return 2;
if($data == 'variableStr') return 3;
}
/* umrechnungsprofile beginnen mit dem suffix uProfile... */
function uProfileTemp($data){ //umrechnung temperaturen
return bcmul($data, 0.1, 2);
}
function uProfileTimeToHours($data){ //umrechnung zeit in stunden
return bcdiv($data, 3600, 2);
}
function uProfileMDHis($time){ //umformatierung zeit in 00:00:00
$days = floor($time / (60 * 60 * 24));
$time -= $days * (60 * 60 * 24);
$hours = floor($time / (60 * 60));
$time -= $hours * (60 * 60);
$minutes = floor($time / 60);
$time -= $minutes * 60;
$seconds = floor($time);
$time -= $seconds;
return sprintf("%'.02d", $hours).":".sprintf("%'.02d", $minutes).":".sprintf("%'.02d", $seconds);
}
function uProfileDMYHIS($time){ //umformatierung in tag monat jahr stunde minute sekunde aus einem unix timestamp
return date("d.m.Y H:i:s", $time);
}
function uProfileKwh($data){ //umformatierung druck in kilowattstunden
return bcdiv($data,10, 2);
}
function uProfileKw($data){ //umformatierung druck in kilowatt
return bcdiv($data,10, 2);
}
function uProfileDruck($data){ //umformatierung druck in bar
return bcdiv($data,100, 4);
}
function uProfileELeistung($data){ //umformatierung in elektrische Leistung
return bcdiv($data,1000, 2);
}
function uProfileWPZust($data){ //wärmepumpen betriebszustände
switch ($data){
case 0:
return "Heizen";
break;
case 1:
return "Warmwasser";
break;
case 2:
return "Schwimmbad / Photovoltaik";
break;
case 3:
return "EVU-Sperre";
break;
case 4:
return "Abtauen";
break;
case 5:
return "Keine Anforderung";
break;
case 6:
return "Heizen ext. Energiequelle";
break;
case 7:
return "Kühlbetrieb";
break;
}
}
function uProfileWPKelvin($data){ //umformatierung druck in kelvin
return bcdiv($data,10, 2);
}
}
$wpClass = new getProfiles();
Jetzt kommt noch eine Kleinigkeit, mit denen die Fehlercodes, die die WP liefern könnte ausgewertet bzw. gewandelt werden in eine kurze Beschreibung. Die Anleitung der Luxtronik2 liefert mir ja schon die Fehlercodes.
So Schaut es jetzt bei mir aus…
Und hier nun noch ein vollständiger Download aller aktuellen Scripte.
wp.zip (7,7 KB)
Beste Grüße aus Cottbus
tomquenten