neue PHP-Module als Ersatz meiner Delphi-Module

Wir haben doch jetzt schon int statt integer :rolleyes:

Paresy hat dies so gelöst, indem der die scalaren Typen einfach als Klasse ausweist.
Meine IDE meckert nicht, wenn ich die ipsmodule.php als abhängige Datei einbinden.
Michael

Ah, das heisst jetzt schon alles auf string, bool, int und float umstellen und das geht ja? Und dann warten bis PHP 7 kommt oder kann ich das so lassen und es wird trotzdem auch mit integer weiter funktionieren?

Hallo Tommi,
da hab ich ja was losgetreten :smiley:
Mit „Befehle testen“ kann man nun mit der öffentlichen „Parse“-Funktion der CUL-Splitterklasse ganz einfach neue FS20-Geräte anlegen und dann koppeln und das ganz ohne ein Script erstellen zu müssen.
Das finde ich schon nicht schlecht.

Schuggi

Ich habe die Type Hints jetzt für 4.1 eingebaut und hochgeladen. Ich hoffe, ich habe alles erwischt. Bei einigen Switch Funktionen hatte ich ursprünglich einen mixed Parameter, das ist jetzt nur noch boolean. Wenn deswegen was in Euren Scripten jetzt nicht mehr funktioniert, bitte entsprechend ändern.

Nach dem Aktualisieren IPS auch neu starten.

Tommi

Hallo Tommi,
mir ist noch ein kleiner Fehler aufgefallen.

elseif (preg_match("/^(V\s*[0-9\.]+)\s*CSM.*/", $line, $res)) {

zum Parsen der Versionsnummer funktioniert bei meinem CUL nicht.
Ich hab das „CSM“ gegen „CUL“ getauscht, dann geht es bei mir.

Schuggi

Interessant.

Habe ich angepasst.

Tommi

Hallo Tommi,
mir ist noch ein Fehler bei korrigierten Temperaturen der AVM DECT aufgefallen.

Der Korrekturwert wirkt doppelt.
Beispiel:
Gemessen 23°C in der FRITZ!Box korrigiert auf 21°C erscheint in IP-Symcon mit 19°C

Schuggi

Ich hab mir das mal angeschaut.

if ($has_temperatur) {
                //bit8=temperature sensor
                if (isset($device->temperature)) {
                    $temperatur = ((integer)$device->temperature->celsius) / 10;
                    $offset = ((integer)$device->temperature->offset) / 10;
                    $temperatur = $temperatur + $offset;
                    $caps = 'Temp';
                    $data['Temp'] = $temperatur;
                    $txt = sprintf(" Temperature:(Temp:%02.1fC, Offset:%02.1f) ;", $temperatur, $offset);
                    $this->debug(__FUNCTION__ . "_Temp", $txt);
                    $this->SendWSData($caps, $data);
                }
            }

Anscheinen ist in der gelieferten Temperatur der Offset schon verrechnet.
Ich hab mal die Zeile mit der Verrechnung auskommentiert und jetzt stimmt es.

//$temperatur = $temperatur + $offset;

Schuggi

auch nicht schlecht. Ich könnte wetten das war aber früher anders. Ist jetzt ebenfalls geändert.

Danke!
Tommi

Hi Tommi,

ziehe gerade auf IPS um und habe Deinen CUNO Splitter (4.1er Repo) an einen Client Socket gehängt und das fand auch sehr schön meine FHTs und legte sie als Devices an. Die sind nur leider alle „verriegelt“. Bin mit telnet auf den CUNO gegangen und habe gesehen, dass T01 auf 0000 steht - kein Housecode (FHT-ID) hinterlegt und dann nimmt er nicht aktiv an der Kommunikation teil. Vermutlich sind die deshalb locked? Habe dann per Telnet (m)einen Housecode gesetzt, der überlebt aber keinen Boot. Wo hinterlege ich den, der muss ja beim Öffnen des I/O übergeben werden?
Die FHTs sind auch nach Setzen meines Housecodes noch locked - vielleicht muss ich sie neu autocreaten lassen (?)

Danke und Grüße!
mol

P.S. Ich weiß, altes Zeug - aber solange es läuft…

Was heißt „verriegelt?“

Aktuell werden die FHTs nur mitgelesen und auch nur für die FHT TFKs ausgewertet. Wenn auch SwitchInstancen für die Regler angelegt werden, ist das eigentlich nicht korrekt. Ich kann das nicht selber testen, ich habe keine FHTs mehr. Falls mir jemand Code für die Regler z.B. als PR schickt, baue ich das gerne mit ein.

Tommi

…ah, kleine Fehlleistung meinerseits: Hatte TFK überlesen, verriegelt ist einfach das geschlossene Fenster. Die laufen also sauber.

Nachdem dann auch klar ist, dass die FHTs selbst nicht über autocreate kommen, habe ich jetzt mal einen händisch als Instanz hinzugefügt - gibt es in IPS ja im Standard. Die Instanz erwartet als übergeordnete Instanz eine FHZ und ich habe den CUNO. Den Splitter CUNO kann ich dem FHT leider nicht als übergeordnete Instanz hinzufügen und Deinen FHZDummy gibt es glaube ich nicht mehr. Deshalb zwei Folgefragen:

  • Du schreibst, dass SwitchDev die Funktion von FHZDummy teils übernommen hat. Das scheint mir für FHTs aber nicht relevant zu sein, den kann ich nicht sinnvoll als Switch anlegen. Wäre nicht doch FHZDummy eine gute „Zwischenschicht“ zwischen IPS-FHT und dem Splitter CUNO? Für ein FHTDevice bräuchtest Du ja den Code, den Du nicht hast und es gibt bereits ein allerdings an die FHZ gebundenes FHT im IPS :wink:

  • Um mit dem CUNO arbeiten zu können muss ich ihm den Housecode übergeben. Du übergibst ihm meine ich schon X21, ich finde nur nicht, wo das konfiguriert ist. Müsste ihm T01[xxxx] als Housecode übergeben, damit er senden kann. Bei FS20 kein Thema, die hören auf alles. FHTs aber nicht. War evtl. auch mal im FHZDummy.

FS20 hab ich nicht mehr, die FHTs sind noch da, weil sie laufen und weil ich sonst 22 Motoren tauschen müsste und bei HM z.B. auch keine brauchbaren Raumregler mehr hätte. Lief bislang jahrelang unter fhem, probiere aber gerade den Umstieg. Bin also Neuling bei IPS und habe halt die vermutlich typischen Probleme plus dass alte Anleitungen wegen Releasewechseln nicht mehr unbedingt passen. Gelesen habe ich immerhin schon manches gestern :wink:

Danke und Grüße!
mol

  • Du schreibst, dass SwitchDev die Funktion von FHZDummy teils übernommen hat. Das scheint mir für FHTs aber nicht relevant zu sein, den kann ich nicht sinnvoll als Switch anlegen. Wäre nicht doch FHZDummy eine gute „Zwischenschicht“ zwischen IPS-FHT und dem Splitter CUNO? Für ein FHTDevice bräuchtest Du ja den Code, den Du nicht hast und es gibt bereits ein allerdings an die FHZ gebundenes FHT im IPS :wink:

Das „teilweise“ bedeutet halt, das ich manche Dinge nicht mehr unterstütze. Die originalen FS20 und FHT instancen gehören dazu. Der CUL-Splitter verwendet ein komplett anderes Daten-Interface als die FHZ. Die IPS internen Module kann ich nicht mehr verwenden schlicht aus dem Grund, weil die Interfaces nicht dokumentiert sind und sich von heute auf morgen ändern können. Da ich auch keine FHTs mehr habe ist mein Interesse daran gegen Null.

Um mit dem CUNO arbeiten zu können muss ich ihm den Housecode übergeben. Du übergibst ihm meine ich schon X21, ich finde nur nicht, wo das konfiguriert ist. Müsste ihm T01[xxxx] als Housecode übergeben, damit er senden kann. Bei FS20 kein Thema, die hören auf alles. FHTs aber nicht. War evtl. auch mal im FHZDummy.

Naja, das ist nicht ganz so korrekt. Der CUNO hört erstmal auf alles was er bekommt und gibt es aus. Mit X21 wird nur das Ausgabeformat eingestellt. Jede FHT Temperaturänderung wird also auch übertragen und der empfangene Hauscode steht im Satz drin. Das aktuelle Modul sollte das ignorieren.Das FHZDummy hatte nur zusätzlich eine erweitere Decoding und Logging Funktion. Das mitlesen wäre immer noch möglich,
An den Cuno senden tust Du nur, wenn Du was schalten willst. Für FS20 habe ich das implementiert, die Übertragung von Solltemperaturen nicht, weil ich kein nutzbares Heizung-DeviceModul habe. An der gleichen Baustelle scheitert das AVM Comet Dect Ventil.

HTH
Tommi

Ja habe ich verstanden und ist soweit auch ok. Schon klar mit dem Senden, aber ich sende ja eben auch etwas an die FHTs, zumindest war das bisher so. Natürlich schade für mich, aber nicht zu ändern dann.
Wegen X21 und T01 vielleicht hier culfw reference. An FS20 sendet er natürlich auch ohne Housecode. Kennst Du sicher sowieso.

Edit: Gerade gesehen, dass es für HM inzwischen einen Wandthermostaten gibt (HM-TC-IT-WM-W-E) - dann werde ich mal umsteigen und Dein Modul brauche ich dann auch nur noch zum Mitlesen, so kann ich zumindest die Fenstersensoren, HMS Wassermelder und das Wetterteil behalten :slight_smile:

Viele Grüße!
mol

Kleiner Tipp am Rand für die Datei Switch\form.json. Es muss anstatt:


{ "type": "Button", "label": "Off", "onClick": "SWD_SetSwitchMode($id,false');" }

heißen:


{ "type": "Button", "label": "Off", "onClick": "SWD_SetSwitchMode($id,false);" }

Gruß,

Stefan

Ups, der ist mir durch die Lappen gegangen. Ist korrigiert.

Danke!

Tommi

Hallo, können mit dem CUL Modul auch Intertechno Steckdosen geschaltet werden?

Ich habe keine Intertechno, Elro etc. Dosen. Dafür braucht man auch einen 433Mhz CUL, den ich auch nicht habe. Deshalb ist davon nichts in meinem Modul nicht implementiert. Wer möchte, kann das gerne einbauen. Das Gerüst ist ja da.

Tommi

Hallo Zusammen,

ich bin noch neu hier und kenne mich mit IPS noch nicht so gut aus.

Ich habe eine TFA Nexus und Instanz angelegt, nur was gehört bei URL usw. rein?

Station ist an dem Rechner auf dem auch IPS läuft angeschlossen (lokal)

Für etwas Hilfe bin ich dankbar.

Viele Grüße
stern

Das TE923 Modul ist wie auch das WS2500 Modul nicht für den direkten Anschluss der Wetterstation gedacht. Statt dessen werden die Daten von IPS über einen Webzugriff auf einem Linux-Rechner wie Raspberry, wo die Station dranhängt, ausgelesen.

Das grundsätzliche Einrichten des Raspberry habe ich hier beschrieben, wobei die alten 3.x-Version IPS-Scripte durch das Modul ersetzt wurden

HTH
Tommi