Möhlenhoff Alpha 2

Folgendes habe ich mal verändert:

in der Konfig ist ein neuer Key („Parent“ => „Allgemein“) dazugekommen:

	private static $values = Array(
		"ID" => Array("Parent" => "Allgemein", "Name" => "Basis ID", "Type" => 3, "Profile" => "", "Action" => false, "Position" => 50),
		"VERS_SW_STM" => Array("Parent" => "Allgemein", "Name" => "Basis SW STM Version", "Type" => 3, "Profile" => "", "Action" => false, "Position" => 50),
		"VERS_SW_ETH" => Array("Parent" => "Allgemein", "Name" => "Basis SW ETH Version", "Type" => 3, "Profile" => "", "Action" => false, "Position" => 50),
		"VERS_HW" => Array("Parent" => "Allgemein", "Name" => "Basis HW Version", "Type" => 3, "Profile" => "", "Action" => false, "Position" => 50),
		"TEMPERATUREUNIT" => Array("Parent" => "Allgemein", "Name" => "Basis Temperatureinheit", "Type" => 1, "Profile" => "MH.TemperatureUnit", "Action" => true, "Position" => 50),
		"SUMMERWINTER" => Array("Parent" => "Allgemein", "Name" => "Basis Automatische Zeitumstellung", "Type" => 0, "Profile" => "MH.SummerWinter", "Action" => true, "Position" => 50),
private function MaintainArray($Array) {
		foreach($Array as $key => $value){
			if(!isset($value["Keep"])){
				$keep = true;
			} else {
				$keep = $this->ReadPropertyBoolean($value["Keep"]);
			}
			$this->MaintainVariable($this->ReduceToIdent($key), $value["Name"], $value["Type"], $value["Profile"], $value["Position"], $keep);
			$var_id = @IPS_GetObjectIDByIdent($this->ReduceToIdent($key), $this->InstanceID);
			
			if(array_key_exists("Parent", $value))
				{

				// Kategorie prüfen und erstellen
				$check_ident = @IPS_GetObjectIDByIdent("MH_ALLGEMEIN", $this->InstanceID);
				if (!$check_ident)
					{
					$cat_id = IPS_CreateCategory();
					// Namen aus $value["Parent"] übernehmen
					IPS_SetName($cat_id, $value["Parent"]);
					//Modul-Instanz als Parent setzen
					IPS_SetParent($cat_id,  $this->InstanceID);
					IPS_SetIdent($cat_id, "MH_ALLGEMEIN");
					IPS_SetParent($var_id,  $cat_id);
					}
				else
					{
					IPS_SetParent($var_id,  $check_ident);
					}

				}
			if ($keep && $value["Action"]){
				$this->EnableAction($this->ReduceToIdent($key));
			}
		}
	}

Positive Ergebnisse:

  • für diese Variablen wird unterhalb der Instanz eine Kategorie „Allgemein“ angelegt und selbige unter diese verschoben
  • alle anderen Vars behalten die Instanz als Parent

Negative Ergebnisse:

  • die Instanz bekommen keinen Namen (bleibt leer!)
  • die Instanz wird unter der Root („IP-Symcon“ angelegt)
  • bei Variablen mit „Action“ => true schlägt das EnableAction fehl, da in der __ipsmodule.inc.php davon ausgegangen wird, dass der Ident direkt unter der Instanz liegt und nicht unter der Kategorie „Allgemein“:
	protected function EnableAction($Ident) {
			IPS_EnableAction($this->InstanceID, $Ident);
		}

Welchen Lösungsansatz könnte es geben, dass nicht alle Variablen direkt unter der Modulinstanz liegen müssen?
Kann man die Datei __ipsmodule.inc.php einfach ändern oder wird sie beim nächsten Update überschrieben?

EDIT: auch mit einer DummyInstanz anstelle der Kategorie kommen Fehler.

Hallo
Habe mir die Beschreibung SymconMH/README.md at master · symcon/SymconMH · GitHub
durchgelesen, finde in IP-Symcon Manager die Inszanz nirgends
Verwende aktuellste Verrsion von IPS
Was übersehe ich?

Inst.jpg

Hast du das Modul auch installiert? Die Instanz gibt es nur, wenn du das Modul installierst ;).

Hallo, Danke, Modul war nicht installiert, jetzt funktioniert es

Hallo

Habe an der „Alpha 2“ Steuereinhet mit 8 Relais 5 Raumbedieneräte verknüpft.
Was ich bis jetzt herausgefunden habe, kann ich ein Relai nur über das Raumbediengerät ansprechen, und das auch nicht direkt.
Meine Frage, kann ich nicht direkt die Werte für
Heizkreis x Aktiv
Heizkreis x Aktor
Heizkreis x Aktor Prozent ansteuern.

Habe 2 Heizkreise die nicht über ein Raumbediengerät gesteuert werden.
Genauer, habe einen Zusatzheizstab in einem Heizkörper, wenn der Heizstab heizt, soll des Ventiel zumachen!
Ich möchte nicht 2 Raumbediengeräte kaufen nur um das Relai ansprechen zu können.

LG Markus

Schönen guten Tag,

nach dem Update auf IPS7 Testing habe ich folgende Fehlermeldung im Webinterface wenn ich die Temperatur ändern will.

Nach dem Zurückspielen auf version 6.4 sind die Probleme weg.
Woran könnte das liegen ?

mfg

Ich habe soeben eine Beta Version hochgeladen. Magst du mal schauen, ob damit alles passt?

paresy

Mit der Beta Version kommt der Fehlern nicht mehr :+1:
Dankeschön, schneller kann so ein Service nicht sein :loveips:

1 „Gefällt mir“

Moin, da bin ich wieder.

Den ganzen Sommer hat man die Heizung ja nicht gebraucht.
Jetzt wollte ich einfach mal etwas testen und merke, dass ich die Temperatur nicht mehr einstellen kann per Symcon.
Ich kann die Temperatur wohl einstellen, die bleibt dann für ne Minute oder so angezeigt, springt dann aber wieder auf den alten Wert zurück.

Woran könnte das liegen ?

mfg

Schade, kann mir keiner helfen?
Bekomme diesen Fehler irgendwie nicht weg…

Was gibt es denn für Fehler?

paresy

Hatte ich ja geschrieben oder sieht man den Post nicht?:sweat_smile:
Er nimmt die Werte nicht an, wenn ich diese per web Interface einstelle. Egal ob über die Visualisierung oder direkt aus der Konsole heraus.
Ich Stelle das auf z.b 22 Grad. Es wird für ein paar Sekunden angezeigt, springt dann aber wieder auf den Wert zurück, der am Wandthermometer eingestellt ist.
Die ist Temperatur wird immer korrekt angezeigt und auch die Soll Temperatur wird aktualisiert wenn ich das per Wandthermometer einstelle.

Hi @Paresy,

Could you please add the status variable ‚Boiler‘ to the list of variables? It needs to tell me if the Boiler needs to be switched on or off. Based on this variable I want to switch on or a pump or a heatpump. I don’t want to put a cable between the Alpha 2 unit and the pump or boiler (they are located in the cellar). I like to control the actual switching of the Boiler from IPS.

Adding the ‚Pump‘ variable would also be very nice !

Robert

Good morning @paresy,

I tried to find the XML setting about the status of the Pump and Boiler switches myself but sadly I couldn’t find them in your scripts (looked at the github code). I know you are busy therefor hoping I could do it myself :wink:

I found a release note from Mohlenhoff saying they added the ‚Transfer of the pump and boiler status in two new XML tags via the XML interface.‘ As of software/firmware version 2.10 it should be possible to collect the status of the pump and boiler. I have version 2.17. Looking at your code it looks like you programmed it BEFORE the 2.10 release.

Update 9-11-23 : 10:23, I found the variables, YES!

<PUMP_ISACTIVE>1</PUMP_ISACTIVE> //obviously this is the pump :wink:
<RELAIS_ISACTIVE>0</RELAIS_ISACTIVE> //the boiler relais.

Now adding these to your code, thats another thing!

Thanks,
Robert

Hi,

I noticed that a few days ago the code in github has been changed. I can’t find if the two variables that I desperately need are added. It’s not something I will do myself (no idea even if this is possible).

Could these two variables be added ?
<PUMP_ISACTIVE>1</PUMP_ISACTIVE>
<RELAIS_ISACTIVE>0</RELAIS_ISACTIVE>

Thanks,
Robert

Can you try to modify the file yourself?

You will need to add two lines → Probably like this:

'PUMP_ISACTIVE'              => ['Name' => 'Pumpe Aktiv', 'Type' => 0, 'Profile' => '~Switch', 'Action' => true, 'Position' => 50],
'RELAIS_ISACTIVE'              => ['Name' => 'Relais Aktiv', 'Type' => 0, 'Profile' => '~Switch', 'Action' => true, 'Position' => 50],

paresy

Du könntest dir diese Zeile einkommentieren und dann im Debug nachsehen, ob die Werte immerhin richtig übermittelt werden.

So ne richtige Idee habe ich nicht, was da sonst schief laufen kann.

paresy

Habe mal was anderes getestet,

es gab ja diesen Fehler Möhlenhoff Alpha 2 - #17 von MarekG der mit der Beta behoben wurde. Anscheinend braucht man immer noch die Beta Version, da man mit der anderen noch immer den Fehler bekommt.
Jedenfalls habe ich heute mal eine neue Instanz für die Heizung angelegt und mit der funktioniert es.
Da ist meine Instanz wohl irgendwie defekt und ich muss die neu anlegen was ?
Ist zwar viel Arbeit aber geht wohl nicht anders.

mfg

Okay, wow ich bin echt blind.
Aus irgendwelchen Gründen hatte ich bei jeder Variable „Soll Temperatur“ ein Aktionsskript hinterlegt.
Also nicht bestimmtes, sondern wohl einfach nur bei Aktionsskript auf Automatisch erstellen. Warum auch immer. Wurde das für irgendwas benötigt oder kommt das irgendwie noch aus einer alten Version?
Nachdem ich das überall gelöscht habe, scheint es zu funktionieren.

mfg