Frage mich nur, warum das bei der 4.0 nicht aufgefallen war.
Die 4.0 sendet, sobald du die Verknüpfung gemacht hast, einfach stupide alle Daten weiter. Die 4.1 check jedoch vorher ob die Instanz das Datenpaket verarbeiten kann. Das löst ein Problem, welche Nall Chan gepostet hat, wo die internen Instanz von IPS seine „erweiterten“ Datenpakete empfangen haben und somit Fehler geworfen haben. Nun wir immer das erste jeweils unterstützte Datenformat an die Instanz ausgeliefert. Das Doku Update dazu steht noch aus
Das war übrigens auch notwendig um die erweiterten Datenpakete vom ServerSocket abzubilden, welche IP+Port mitliefern.
Zur 4.1 bemängeln wir das. Laufen tun die Module trotzdem. Der Vorteil von TypeHints (die übrigens per Trick in PHP5 sind und erst ab PHP7 nativ unterstützt werden) ist, dass die Konsole bei „Gerät ausführen“ entsprechende Felder bereitstellen kann.
Wie gehe ich denn mit Variant/Mixed Parametern um?
* Send Switch command to Device
* @param $ain String Actor ID
* @param $val mixed new actor value
* @return bool
*/
//query actual state
public function SwitchMode(string $ain, $val)
Der $val Wert kann ein bool, ein String oder eine Zahl sein
Tommi
Ja. Leider geht das erst ab PHP7. Sobald wir den Wechsel machen wird es dort auch die Type Hints geben. Ich glaube die Syntax ist aber ein wenig anders
Registriere Funktion... Reflection parse error:
Strict Standards: Declaration of APCUPSD::SendDataToChildren() should be compatible with IPSModule::SendDataToChildren($Data) in E:\IP-Symcon\modules\ipsymcon-phpmodule-by-Tommi\APCUPSD\module.php on line 20
Dann kann aber jeder auf diese Funktion zugreifen und er taucht auch in der Befehlsreferenz und unter Befehle testen auf…
Ich nutze diese Funktionen aber auch teilweise nicht, sondern direkt IPS_SendDataTo… Und das geht auch von außerhalb
Mixed kann IPS ja nicht wirklich, Also den Typ an den Funktionsnamen anhängen und die rufen dann das Original auf.
Darum gibt es ja auch vier HM_WriteValue Befehle [emoji4]
Michael
Nö, ist wirklich falsch.
Schau doch mal nach Zeile 514 in der module.php. Die sollte sollte richtigerweise so aussehen(„Yes“ und „No“ groß geschrieben)
Wäre es Dir vielleicht möglich, noch das Modell und die ID der USV jeweils als Variable auszugeben ???
Als Variable macht das nicht so viel Sinn, da sich Modell und ID (normalerweise) nicht ändern. Sie stehen aber als Properties zur Verfügung, falls sie bereitgestellt werden, ansonsten sind das generierte Daten.