Custom KNX Modul

Hallo zusammen,

ich möchte gerne andere/neue KNX Module erstellen. Wenn ich nichts übersehen habe, gibt es keine „kombinierten“ Module für KNX - also dass man z.B. eine Lampe hat die dimmbar ist und hierfür einen Schalter und einen Slider in einem Modul hat und entsprechend mehrere Gruppenaddressen angeben muss.

hierfür habe ich mal angefangen ein Modul zu entwickeln aber ich blicke noch nicht so ganz durch, vor allem wie man auf die Ereignisse, die vom Bus kommen, reagieren kann.

Um mal einen Punkt zu haben über den man reden kann, hier der bisherige Code :slight_smile:


<?php

declare(strict_types=1);

class KNXerLightSwitched extends IPSModule
{
    public function Create()
    {
        parent::Create();
        $this->RegisterPropertyString('ga.light.set.switch', '0/0/0');
        $this->RegisterPropertyString('ga.switch.set.led', '0/0/0');

        $this->RegisterAttributeBoolean('light.on', false);
        $StateVariableID = $this->RegisterVariableBoolean('LightStateOn', false);
        $this->CreateEvent($StateVariableID);
    }

    public function ApplyChanges()
    {
        parent::ApplyChanges();
        $StateVariableID = IPS_GetVariableIDByName('LightStateOn', $this->InstanceID);
        $this->CreateEvent($StateVariableID);
    }

    private function CreateEvent($variableID)
    {
        $eid = @IPS_GetEventIDByName('StateNotification', $this->InstanceID);
        if ($eid) {
            IPS_DeleteEvent($eid);
        }
        $eid = IPS_CreateEvent(0);
        IPS_SetName($eid, 'StateNotification');
        IPS_SetEventTrigger($eid, 1, $variableID);
        IPS_SetParent($eid, $this->InstanceID);

        IPS_SetEventScript($eid, "echo 'Verknüpftes Objekt:' . \$_IPS['TARGET'];");
        IPS_SetEventActive($eid, true);
    }
}

Das ganze funktioniert so nicht, hätte ich bisher aber auch noch nicht erwartet :slight_smile:

Grüße,
elmcrest

Normalerweise hast du Einzelinstanzen und machst die Komposition der Visu über Dummy Module und Links :slight_smile: Die kannst du dann beliebig zusammenstellen.

Falls du trotzdem weitermachen willst… Der Datenfluss ist dein Freund. Beachte bitte, dass du dann die KNX Daten selber auswerten musst. Außerdem wird es von der 5.3 auf die 5.4 einige Änderungen geben den Datenfluss bei KNX betreffend. (Aktuell versenden wir große Teile der cEMI. Aber der 5.4 bekommst man nur noch die APCI und Data)

paresy

Hey paresy,

alles klar, dann versuche ich mich mal in das Thema Datenfluss einzuarbeiten. Gibt es die 5.4 schon als beta irgendwie?
Irgendwelche Bugs darin würden mich jetzt weniger stören als dass alles zeitnah wieder zu refactoren … ?

Oder ist das nicht so wild letztendlich?

Problem mit dem Dummy Modul ist nach meiner aktuellen Vorstellung, dass ich nicht die volle Kontrolle habe? Mein Ansatz ist KNX komplett zu „verdummen“ und IPS als zentrales und einziges Gehirn einzusetzen. Sprich, ich müsste entsprechend von einer „Ereignis-Gruppenaddresse“ wenn etwas z.B. geschaltet wird diverse andere Teilnehmer (evtl. auch ausgeblendete GAs) benachrichtigen und den status aktualisieren.

Ich fände das schon ganz interessant - das Zusammenbasteln von Dimmern oder Jalousie aus einzelnen Elementen in IPS wurde gerade kürzlich im KNX-Forum von Systemintegrator badsmiley (IPS-Neuling) noch als umständlich kritisiert. Weil’s anderswo eben ein GUI-Element ist.

Der gute alte EIB-Shutter in IPS geht mMn schon in die richtige Richtung. Sowas für KNX Dimmer wäre schon hilfreich, weil es die Visu-Erstellung beschleunigt.

Deshalb freue ich mich über das Engagement von elmcrest, kann aber leider inhaltlich nicht helfen.

Hallo nochmal,

könntet ihr nicht ein vorhandenes Beispiel hier posten? Es gibt ja schon diverse (closed source) Module für KNX … aber wäre cool wenn ihr da was veröffentlichen könntet, ist ja auch nicht viel mehr als ne gute Dokumentation :slight_smile:

Mein Modul bleibt Open Source (github.com/elmcrest/knxer aktuell) und falls mein Plan auf geht wird das ziemlich gut für den „KNX Markt“ … aber man soll ja nicht über ungelegte Eier sprechen.

Ich habe dir mal Zugriff gegeben. Solltest jetzt den Beta-Bereich sehen.

Source kann ich dir nicht anbieten. Schau dir den Datenfluss mal an. Sobald du die Daten im Modul hast sollte der Rest mMn gar nicht so „schwer“ sein.

paresy

Ok, also brauche ich für KNX eine Splitter Instanz? Wozu ist die überhaupt gut?
Kann ich einfach „connectParent“ mit der GUID von „EIB Gateway“ nutzen? Hierzu muss ich wohl in der .json noch RequireParents etc. angeben…

Habe den IOTEst gefunden im Repo aber die GUID finde ich nicht als „echte“…

Guten Abend,

Ich kann aber schon irgendwie das vorhandene EIB Gateway benutzen oder?
Wenn ich die GUID Regelung zwecks „Kompatibilität“ sehe habe ich da meine Zweifel, aber das kann ja nicht sein…

Gesendet von iPhone mit Tapatalk

Ok, also ein Module verrät einem was für GUID erwartet werden, hierzu:

IPS_GetModule — IP-Symcon :: Automatisierungssoftware

Ich kann also das EIB Gateway benutzen, sehr schön.

Gesendet von iPhone mit Tapatalk