Gira, Jung eNet

Begonnen von djhans, 12 März 2014, 10:22:17

Vorheriges Thema - Nächstes Thema

lanwin

Ah es scheint so zu sein das man nicht permanent events bekommt, sondern man folgenden request absetzen muss um events zu bekommen:

{"CMD":"ITEM_VALUE_SIGN_IN_REQ","TIMESTAMP":"1423493333","ITEMS":[16],"PROTOCOL":"1.8"}

ITEMS ist dabei nen array mit allen Nummer der Aktoren die man überwachen möchte. Vermutlich bekommt man dann so lange alle events, bis man einen command absetzt, danach muss man wieder diesen request absetzen. Das macht auch Sinn, den so kann die synchrone request response Abfolge eingehalten werden. Wenn das gateway einfach irgendwelche events schicken würde, könnte man am ende nicht mehr rausfinden welche response nachricht zu welchem request gehört ohne eine correlation_id zu nutzen.

Interessant wäre jetzt noch was es mit dem timestamps auf sich hat. Die ändern sich scheinbar nie.

Cybers

Hallo,

gibt es hierzu einen aktuellen Stand?

Gruß, Sascha
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

Wuppi68

leider noch nicht so wirklich

ich bekomme schon eine Session mit dem gateway hin und kann auch via RAW Befehle Kommandos an das gw schicken :-)

Muss aber leider das Projekt erst einmal hinten anstellen.
Vermutlich werde ich bis zum Herbst damit fertig werden zu programmieren.

Muss noch 2 Zimmer komplett renovieren

Elektro, Wände, Boden, Decke, Rollade ...

Gibt es Neues werde ich auf jeden Fall berichten
FHEM unter Proxmox als VM

PumpkinEater

Hallo zusammen,
auch wenn der Thread schon etwas älter ist, wollte ich mal nachfragen, ob es neue Erkenntnisse/Erfahrungen dazu gibt. Ich möchte meine Gira-Jalousietaster und Jalousiesteuerungen durch "eNet Funk-Jalousie-Steuertaster" austauschen und dann mittels "Gira Mobile Gate" oder "Jung FM-Gate-IP" steuern (über FHEM oder Symcon). Gibt es noch Einschränkungen oder fehlen noch Informationen zum Protokoll? Oder könnte ich Funktaster und Gateway kaufen und dann die eNet-Befehle zusammenbauen und über das Gateway rausschicken, und alles ist gut? ;-)

Gruß
Peter


PumpkinEater

#19
Bei mir läut nun ein Gira eNet Gateway zusammen mit vier Jalousie-Tastern. Ich habe die Geräte zwar nicht in FHEM, sondern in IPS-Symcon eingebunden, trotzdem ist vielleicht der folgende PHP-Code ganz interessant:


// Diese Funktion rufe ich jedesmal auf, bevor ich den Rolladen bewegen möchte. In $id steht die Nummer des Rolladen (16,17, etc).
// Sollen mehr als einer angesprochen werden, kann man die IDs vermutlich im JSON-Array ['.$id.'] ergänzen:

function register_rolladen($id)
{
global $gira_client_socket; // an diesen Socket wird mit der Funktion "CSCK_SendText" gesendet

$timestamp = time();
$message = '{"CMD":"ITEM_VALUE_SIGN_IN_REQ","TIMESTAMP":"'.$timestamp.'","ITEMS":['.$id.'],"PROTOCOL":"1.8"}'."\r\n\r\n";

if(!CSCK_SendText($gira_client_socket,$message))
       IPS_LogMessage("ERROR Skript raufrunter", "Kann nichts an den Rolladen senden\n");
}

// Mit dieser Funktion wird der Rolladen mit der ID $id auf den Schließgrad $value bewegt. Auch hier kann man das Array VALUES erweitern, um mehr als einen Rolladen anzusprechen:
function move_rolladen($id,$value)
{
global $gira_client_socket;

$timestamp = time();
        $message = '{"CMD":"ITEM_VALUE_SET","PROTOCOL":"0.03","TIMESTAMP":"'.$timestamp.'","VALUES":[{"NUMBER":'.$id.',"STATE":"VALUE_BLINDS","VALUE":'.$value.'}]}'."\r\n\r\n";

if(!CSCK_SendText($gira_client_socket,$message))
            IPS_LogMessage("ERROR Skript raufrunter", "Kann nichts an den Rolladen senden\n");
}


Der Empfang der Statusmeldungen vom Rolladen wird dann mit folgendem Codeschnipsel gemacht. In "$message" steht die empfangene Meldung vom Rolladen:

       $obj = json_decode($message,true);  // Decodieren der JSON-Antowrt vom Gira-Gateway
if($obj['CMD'] == "ITEM_UPDATE_IND")
{
            $values = $obj['VALUES'];
    foreach($values as $val)
            {
   $id = $val['NUMBER'];
   $value = $val['VALUE'];

                   // in $value steht der momentane Wert des Rolladens (also sowas wie Öffnungsgrad,
                   // 0: offen, 100: geschlossen

    }
}


Die empfangene Timstamp 08154711 ist übrigens immer gleich (sieht man der Nummer ja auch an ;-)

Gruß
Peter

utnapischtim

Hmm, woher sollte der enet Server auch die aktuelle zeit haben?

Kater

Nach ein wenig Wireshark-Snifferei habe ich mir nun ein paar simple Python-Skripte zusammengebastelt, mit denen ich Rollläden, Schaltaktoren und Dimmer ansteuern kann. Das funktioniert von FHEM aus soweit ganz gut, um z.B. dämmerungsabhängig Rollläden und Licht zu steuern.

Die ,,richtige" Lösung wäre natürlich ein ordentliches FHEM-Modul, mit dem man die Geräte voll einbinden kann, inkl. Anzeige des aktuellen Status. Mangels Perl-Kenntnissen habe ich da aber gewisse Anlaufschwierigkeiten ;). Hat evtl. jemand einen Tip, ob ein vorhandenes Modul eine ähnliche Schnittstelle (d.h. TCP-Socket + JSON) verwendet? Dann könnte man von dort aus weitermachen.

Freibeuter

Hallo Kater,
habe gelesen, dass Du Zugriff auf deinen eNet Server hin bekommen hast, könntest Du den Code hier veröffentlichen ?
Gruß
Der Freibeuter

stoffel

Hallo,
Soweit ich diesen Thread verstanden habe, kann man von "aussen" auf den ENet-Server zugreifen (TCP/Port) und Aktionen auslösen bzw. abfragen?
Gibt es hierzu vielleicht etwas Neues, würde mich auch brennend interessieren.

Grüße
Stef

Wuppi68

Hallo in die Runde,

hier mal ein kleiner Zwischenstand von meinem eNet Gateway:

Grundsätzlich kann ich mit dem Gateway schon reden :-) Und auch via "Telnet" einzelne Befehle absetzen.

Via FHEM scheitere ich noch ein wenig an der Modulprogrammierung.

Bei dem Init schicke ich JSON zum Gateway und bekomme keine Antwort. Erst bei dem nächsten Befehl den ich schicke bekomme ich dann 2 korrekte Antworten :-(

Wenn ich dieses dann gefixed habe, kann ich an die weitere Programmierung ran gehen. Leider habe ich aktuell aber so gut wie gar keine Zeit mich in Ruhe an das Testen zu begeben ... und ich habe keine Lust einen JSON Parser komplett in meinem Modul mit einzubauen :-(

Bin aber auf jeden Fall am Thema :-)

Stay cool

Wuppi
FHEM unter Proxmox als VM

stoffel

Hallo,
funktioniert die Kommunikation nur mit einem Gateway oder ginge es auch mit einem eNet Server,
das kommt aus dem Thread nicht so raus, am Anfang ist die Rede von einem Server, dann vom Gateway.
ich habe mehrere Jalousieaktoren und Sonnensensoren, und würde diese gerne  in meine "HomeAutomation" mit einbinden.

Viele Grüße
Stef

mtxviper

Hier geht es um die Kommunikation mit dem Gateway, das sich sonst nur per App steuern läßt.

Hierzu ein Link der mir sehr weitergeholfen hat: https://github.com/ChristophFausak/node-enet-api

Ich habe aktuell eine .Net Core Anwendung auf einem Raspberry Pi laufen, die meine Enet Rolladen zeitgesteuert hoch und runter fährt.