Fehler in Skript Weihnachtsbeleuchtung - Grund unbekannt

Hallo zusammen,

ich möchte per folgenden Skript in meiner HMW-Instalation div. Steckddosen ein- und ausschalten.
Dazu folgendes Skript:



// max. Scriptlaufzeit definieren
ini_set('max_execution_time', 750);

// Aktualisierung aller HM-Stati - BEGINN
$guid = "{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}";  //guid Homematic

$alleInstanzen = IPS_GetInstanceListByModuleID($guid);

	foreach ($alleInstanzen as $InstanzID)
	{
		echo IPS_GetName($InstanzID)."
";
	        $adresse = HM_GetAddress($InstanzID);

		$alleVariablen = IPS_GetStatusVariableIdents($InstanzID);
		if(sizeof($alleVariablen) > 0)
		{
		   	foreach ($alleVariablen as $VariablenName)
		       {
		      	     $VariablenID = IPS_GetStatusVariableID($InstanzID, $VariablenName);
		             @HM_RequestStatus($InstanzID, $VariablenName);
		   	}
		}
	}
	// Aktualisierung aller HM-Stati - ENDE


	$HomeMaticID = array(
	52623,
	15044,
	56877,
	43412,
	47923,
	23722,
	44223,
	11940 ,
	46487,
	39873,
	12197,
	39979 ,
	);

	foreach ($HomeMaticID as $Aktor)
	{
	   $i = 1;
	   while (@HM_RequestStatus($Aktor, "STATE") != TRUE)
		{
			$i = $i+1;
			HM_WriteValueBoolean($Aktor, "STATE", TRUE); 											 
                        sleep(3);																				
	         }
	}
}

Bei der Ausführung des Skriptes kommt es bei dem Befehl HM_WriteValueBoolean($Aktor, „STATE“, TRUE); mehrfang zu Fehlermeldungen, leider weiß ich nicht, warum (s. folgendes Bild).

Kann jemand unterstützen?

Besten Dank,
Caspi

Hier nochmal die Fehlermeldungen aus dem LOG


56 in scripts\31750.ips.php (call HM_WriteValueBoolean)
IPS-Err-PHP  2016-11-20 17:51:14.895  Warning: Failure
   Error in Script C:\IP-Symcon\scripts\31750.ips.php on Line 56
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler

Die Geräte sind einfach nicht erreichbar.

paresy

okay, per WebFront der CCU2 kann ich die Geräte schalten, warum könnte das per IPS nicht funktionierne (eventuell timeout?)

Das Phänomen hatte ich schon an div. Stellen, dass der Stati der Geräte in der CCU2 nicht mit dem im IPS übereinstimmt bzw. dass in der CCU2 angeblich die Kommunikation gestört war, diese sich aber trotzdem per WebFront (CCU2) bedienen ließen…

Caspi

Das Kommunikation gestört gemeldet wird, heisst nicht dass sie sich nicht schalten lassen. Meist kommt nur die Rückmeldung nicht an. Suche mal nach hmcompanion. Damit sieht man schön die RSSI Werte beider Richtungen.

Zum einen ist es wired, also nix Rssi.
Zum anderen ist das Script an vielen Stellen einfach nur falsch.
RequestState holt zwar den Aktuellen Wert in IPS, aber liefert nicht den Status von STATE.
Und warum werden zu Anfang alle Instanzen mit RequestState abgefragt?
Dafür gibt es doch den Rückkanal, so dass man dies wenn überhaupt nur beim IPS Neustart macht.
Michael

Zum einen ist es wired, also nix Rssi.

Woher soll ich das wissen? Kommunikation gestört ist ja bei wired eher selten. Und über das komische Skript habe ich mich auch gewundert. dazu wollte ich im zweiten Schritt was zu sagen.

Ersten Satz noch mal lesen: HMW-Installation :wink: :wink:
Michael

Das wäre ja super komisch, wenn Failure bei Wired käme. Bist du dir da sicher?

Und ja… Dieses Skript ist ganz schön falsch. Das würde ich einmal vollständig entsorgen.

paresy

Ich vermute mal der Bus ist mit den ganzen RequestState noch beschäftigt, wenn IPS die Schreibbefehle sendet.
Dazu müsste man jetzt wissen, wartet IPS bei RequestState nur auf das OK der CCU das der Befehl empfangen wurde, oder wirklich bis die CCU den Wert gesendet hat.
Michael

Sorry, wenn ich anfangs nicht alle Infos zusammen gepackt habe. Werde das jetzt nachholen…

[ul]
[li]Ja, es handelt sich um eine wired-Installation (daher auch HMW ;))
[/li][li]
[/li][li] Das Problem mit den Aussetzen / nicht erfolgten Schaltungen hatte ich bereits letztes Jahr zur Weihnachtszeit, musste das Thema aber angesichts meiner Zeit erst einmal da acta legen… Bis jetzt, die Weihnachtszeit kommt wieder und damit auch der Wunsch, die Steckdosen zu schalten…
[/li][li]
[/li][li]Den Teil des Skriptes mit den ganzen RequestState hatte ich letztes Jahr nach einigen Hinweisen noch „eingebaut“ (zur Erinnerung: nicht alle Stati der CCU2 stimmen mit denen in IPS zusammen). Damit sollten die Stati entsprechend abgeglichen werden.
[/li][/ul]

Vielleicht nochmal einen Schritt zurück.

Die CCU2 sieht scheinbar sporadisch nicht alle wired-Module. Manchmal, wie in der folgenden Abbildung, erscheint ein ganzer „Weihnachtsbaum“ an Benachrichtigungen…

Die Meldungen verschwinden aber teilweise (wird auf „war gestört“ gesetzt), wenn ein Schaltbefehl (per CCU2-WebFront) an das angeblich nicht erreichbare Modul geschickt wird (und auch umgesetzt wird).

Ich stell mir ehrlich gesagt die Frage, ob HomeMatic wired für die Größe meiner Installation so geeignet ist…
Vielleicht noch ein paar Details dazu…

[ul]
[li]CCU2 am GBit-Switch im Keller
[/li][li]RS485 LAN Gateway in Haupt-Unterverteilung im Keller (angeschlossen am gleichen GBit-Switch, wie die CCU2)
[/li][li]Vom RS485 LAN Gateway sind vier wired-Module per kurzen Drahtbrücken (max. 10cm) angebunden
[/li][li]Vom RS485 LAN Gateway geht jeweils eine Cat5e-Leitung (für A und B) in das 1. und 2. OG (jeweils in eine Unterverteilung). Die 24V werden separat über eine NYM-Leitung 3,5mm² geführt.
[/li][li]In jeder der Unterverteilungen erfolgt die Verdrahtung der Module (jeweils 13 Stück) mit kurzen Drahtbrücken (max. 10cm)
[/li][/ul]

Ich habe den angesprochenen unsinnigen Skriptteil auskommentiert - das Verhalten bleibt aber unverändert…

Bin etwas genervt von HomeMatic :confused:
Caspi

Du hast ein dickes Bus Problem. Das kann IPS nicht ausbügeln. Zeichne mal sauber die Leitungsführung auf. Vielleicht kann man dann einen Terminierungsfehler erkennen.
Leider habe ich keine Erfahrung mit HM Wired und kann dazu nicht viel sagen, aber dutzende Profibus Instalationen zeigen Terminierung ist alles.

Okay, werde das morgen mal detailliert zu Papier bringen.
Vielleicht schon mal ein Anfang:

Terminiert wird der Bus aber nur ein einziges Mal - in der Hauptverteilung im Keller.
Da ist die Reihenfolge:
RS485 LAN Gateway --> Überspannungsschutz mit Busabschluss-Widerstand --> Module in Keller --> Module in 1.OG / 2.OG (per Stichleitung)

Soweit ich weiß (bzw. gelesen habe), reicht eine Terminierung im Bus aus (daher möglichst zentral gehalten)

Caspi

Eigentlichen gehört die an den entferntesten Punkt, da sie ja Reflektionen auf der Leitung verhindern soll.
Michael

Guten Morgen erst einmal,

ich hab mal die grobe Struktur meiner wired-Installation zu Papier gebracht:

Wie gesagt, hatte irgendwo gelesen, dass die Position des Abschlusswiderstandes im Bus egal wäre, daher bei mir zentral in der Hauptverteilung im Keller.
Im Sinne der Reflektionsunterdrückung natürlich einigermaßen sinnfrei… :rolleyes:

Wäre es denn denkbar, in den entfernten Zweigen der Unterverteilungen jeweils den Bus zu terminieren?
Dazu nochmal zwei Fragen:

[ul]
[li] Reicht in diesem Fall einfach ein 120-OHM-Widerstand zwischen A und B aus?
[/li][li] Stört es, den Bus mehrfach zu terminieren (im Keller mit Überspannungsschutz und jeweils in den Unterverteilungen der langen Zweige (Etagen)?
[/li][/ul]

Ich hab gelesen (http://rn-wissen.de/wiki/index.php?title=RS485), dass der RS485-Bus nur für 32 Empfänger konzipiert wäre. Ist das bei HMW auch eine Grenze?

Und noch eine letzte Sache, hab auch gelesen, dass es notwenig wäre, A und mittels Pullup/downs zwischen 1K und
100K für den Ruhezustand zu stabilisieren. Ist das notwendig?

Ich danke euch schon mal!!!
Caspi

PS:
Mir ist durchaus bewusst, dass wir hier im IPS-Forum sind, aber im HM-Forum hab ich damals weniger erfahren, als bereits jetzt hier - großes LOB dafür !!!

Ich habe gestern auch noch mal etwas nachgelesen… du scheinst recht zu haben, da es in Wirklichkeit wohl gar kein Abschlusswiederstand ist, sondern besagter Pullup/Down für den definierten Pegel auf den Bus.
Somit wohl wirklich egal :rolleyes:

Das sind sehr gute Fragen, irgendwie ist da bei EQ3 nix zu finden…
Mehrfache Terminierung ist aber eher schlecht.

Die Anzahl der Geräte liegt am Treiberbaustein des Wired-Gateways, es muss die Treiberbausteine in den Empfängern ja ansteuern können. EQ3 gibt da glaube ich 127 an, also alles ok.

Das ist dein ‚Abschlusswiederstand‘. Keine Ahnung wie das jetzt mit dem eigentlich Abschlusswiederstand vom Hersteller gedacht ist…

Ich würde mal ein paar Punkte ausprobieren / kontrollieren.

[ol]
[li]Ist die Versorgungsspannung an den entferntesten Punkten noch OK (Spannungsabfall) ?
[/li][li]Tritt der Fehler auch/nicht auf wenn nur einen Abzweig angeschlossen ist ?
[/li][li]Ich vermute mal die max. Leitungslänge des RS485 (1000m) erreichst du wohl nicht :wink:
[/li][li]Sind die Busleitungen sauber durchverdrahtet ? Ein Wackelkontakt kann schöne Fehler einbringen.
[/li][li]Der Schrim der Leitungen gem. dem Handbuch des Wired-Gateways nur einseitig aufgelegt ?
[/li][/ol]

Michael

Danke für die Hinweise.
Ein paar Dinge kann ich schon jetzt beantworten:

[ol]
[li]Die Gesamtlänge der Busleitung liegt deutlich unter 1000m - daher sollte das kein Problem darstellen
[/li][li]Der Schirm der Cat5e-Leitung ist aktuell auf keiner Seite aufgelegt.
[/li][/ol]

Die Sache mit dem Schirm kann ich recht schnell ändern, genau wie die Messung, ob der Spannungsabfall relevant ist und die saubere Verdrahtung…
Werde mir das schnellstmöglich anschauen…

Die beschriebenen Fehler betreffen nicht nur die „entfernten“ Busteilnehmer, sondern auch die direkt in der Hauptverteilung im Keller.

Was würde denn im Fall der Mehrfach-Terminierung (in den Etagensträngen) passieren?

Caspi

Ich habe gerade nochmal ein wenig nach Details der HMW-Verdrahtung gegoogelt:

Lt. http://homematic-forum.de/forum/viewtopic.php?f=19&t=4940 sollten beide Bus-Enden terminiert werden.
Demnach sollte eine Terminierung in meinen beiden Etagenverteilungen funktionieren - das andere Busende im Keller hat ja den HMW-Abschluss.

Caspi

Wenn ich das so lese habe ich direkt ein DejaVu :slight_smile:

Vor ca. einem Jahr stand ich vor dem selben Problem. Ich hatte mein Haus neu gebaut und meinen
E-Verteiler mit HM Wired Komponenten ausgestattet. Du kommst insgesamt auf 30 Aktoren? Ich habe 25,
Rolladen, 2fach Schaltaktoren und 12fach Schließer. Bei mir ist alles in einem Verteiler ( Bungalow, 1 Etage ).
Ansonsten ist die Verkabelung ähnlich. Erst das Gateway, dann den Abschlusswiderstand, dann die Aktoren.
Ich hatte dann die selben Effekte wie Du jetzt. Daraufhin haben mein Elektriker und ich den ganzen Bus neu aufgelegt, ohne Erfolg. Dann sind wir stückweise vorgegangen. Erst den einen Aktor - Test - dann den nächsten Aktor - Test -nächster Aktor - Test usw. Am Ende stellte sich ein Rolladen Aktor als störend heraus. Was genau der hatte weiß ich nicht. Ich habe ihn getauscht gegen meinen Ausfall Aktor und seitdem ist alles bestens.

Lördy

So, ich war mal ein wenig fleißig - hier meine Erkenntnisse:

[ul]
[li]Die Versorgungsspannung kommt auch an den „entlegenen Punkten“ des Busses an. Gespeist werden 24,1 V, in den Etagen habe ich 24,0V bzw. 24,1 V gemessen. Das sollte also passen.
[/li][li]Habe sämtliche Bus-Verbindungen / Schraubverbindungen geprüft. Sie sitzen ebenfalls alle „satt“ - daran sollte es auch nicht liegen.
[/li][/ul]

Als nächste Analyse bin ich geneigt, morgen mal die zusätzlichen Widerstände gemäß der folgenden Skizze in die beiden langen Stränge (Ende des Busses) einzubauen. Jeweils 1/8W- Widerstände, 120 Ohm als Terminierung zwischen A + B und jeweils 100 kOhm als Pullup/down gegen Vcc (A) bzw. GND (B).

widerstand.png

Im schlimmsten Fall sollte sich die Situation nicht verändern, oder habe ich einen Denkfehler gemacht?

Beste Grüße,
Caspi