+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 28
  1. #1
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    2,867

    Standard WIFFI-WZ direkt in Symcon nutzen

    Angeregt durch diesen Beitrag habe ich mich noch etwas weiter mit der Integration vom WIFFI-WZ in IPS beschäftigt.

    Ich hatte regen, sehr aufgeschlossenen und netten Kontakt mit Eugen . Er hat einige Änderungen an der Firmware vorgenommen und stellt mit der heute veröffentlichten Version 53 ein JSON mit allen Daten zur Verfügung. Dieses JSON wird direkt an IPS geschickt und kann dort wie folgt verarbeitet werden.

    Zum Empfangen der Daten muss eine Serversocket I/O Instanz angelegt werden
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	1_wiffi_serversocket.jpg 
Hits:	234 
Größe:	80.5 KB 
ID:	36583

    Danach wird ein Cutter angelegt, der die Daten vom Serversocket erhält und sie bei 03 (hex) aufteilt
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	2_wiffi_cutter.jpg 
Hits:	228 
Größe:	124.3 KB 
ID:	36584

    Und dann noch eine Registervariable, die das Script von unten als Ziel bekommt
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	3_wiffi_registervariable.jpg 
Hits:	204 
Größe:	89.9 KB 
ID:	36585

    PHP-Code:
    <?

    $debug 
    true;
    $vartype = array(
        
    'string' => '3',
        
    'number' => '2',
        
    'boolean' => '0'
    );

    $data trim($_IPS['VALUE']);
    $data_object json_decode($datatrue);

    //echo "---\n";
    //print_r($data_object);
    //echo "---\n";

    $ident str_replace(':','',$data_object['Systeminfo']['MAC-Adresse']);

    foreach (
    $data_object['Systeminfo'] as $key => $value) {
        
    SetValue(CreateVariableByIdentCreateDummyModulByIdent($_IPS['SELF'], "wiffi_".$ident), $ident."_".str_replace('-','_',$key), $key$vartype['string']), $value);
    }


    foreach (
    $data_object['vars'] as $array) {
        
    SetValue(CreateVariableByIdent(CreateDummyModulByIdent($_IPS['SELF'], "wiffi_".$ident), $ident."_".$array['name'], $array['homematic_name'], $vartype[$array['type']]), $array['value']);
    }

    return(
    0);


    function 
    CreateVariableByIdent($id$ident$name$type)
    {
        
    $vid = @IPS_GetObjectIDByIdent($ident$id);
        if(
    $vid === false) {
            
    $vid IPS_CreateVariable($type);
            
    IPS_SetParent($vid$id);
            
    IPS_SetName($vid$name);
            
    IPS_SetIdent($vid$ident);
        }
        return 
    $vid;
    }

    function 
    CreateDummyModulByIdent($id$ident)
    {
        
    $id IPS_GetParent($id);
        
    $vid = @IPS_GetObjectIDByIdent($ident$id);
        if(
    $vid === false) {
            
    $InsID IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
            
    IPS_SetName($InsID$ident);     // Instanz mit Default Name benennen
            
    IPS_SetIdent($InsID$ident);    
            
    IPS_SetParent($InsIDIPS_GetParent($_IPS['SELF']));
        }
        return 
    $vid;
    }


    ?>
    Damit der WIFFI-WZ das JSON auch sendet, muss Parameter 27 auf 1 gestellt werden oder mit folgendem Script gleich noch weitere Parameter gesetzt werden. Die IP im Script entsprechend auf euren WIFFI anpassen.

    PHP-Code:
    <?
    ini_set
    (max_execution_time180); // Sekunden Laufzeit
    $ip '172.16.100.34'

    $array = array(
        
    'param:27:1:',        // 1 für JSON Daten
        
    'param:13:55:',        // Eigene Ortshoehe 
        
    'param:20:524:',    // Breitenengrad des eigenen Standortes in 0.1°
        
    'param:21:98:'      // Laengengrad des eigenen Standortes in 0.1°
        
    );

    foreach(
    $array as $entry) {
        
    file_get_contents('http://'.$ip.'/?'.$entry);
        
    IPS_Sleep(10*1000);
    }
     

    ?>
    Das Ergebnis sind dann folgende Werte, die inklusive der Dummy Instanz und jeweiligem eindeutigen Ident automatisch angelegt werden.
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	4_wiffi_werte.jpg 
Hits:	216 
Größe:	191.9 KB 
ID:	36586

    Das Dummy Modul wird parallel zum Script angelegt und kann natürlich umbenannt werden, da die Variablen jeweils per Ident angesprochen werden.

    Die Messwerte werden bei entsprechend großer Änderung gesendet bzw. auch nach Mindestzeitabständen. Die Bewegungsmelder und Noise senden sofort, womit auch entsprechende Beleuchtungssteuerung oder Ähnliches möglich ist.

    Zu Signalisierung kann der Buzzer mit angesteuert werden und piept dann z.B. dreimal.
    PHP-Code:
    file_get_contents('http://172.16.100.21/?buzzer:3:'); 

    Der WIFFI ist bei mir einige Wochen zum Testen im Bad gelaufen, die Werte sind sehr stabil und gut vergleichbar mit meinen LCN Daten bzw. einem "Schätzeisen für Temperatur und Feuchte".
    Um eventuell auftretende Ausreißer beim Neustart zu unterbinden werden die Werte ab Version 53 erst nach 60 Sekunden geschickt, damit sich alle Sensoren wieder eingependelt haben.

    Sollte reges Interesse am WIFFI-WZ und seiner Integration in IPS bestehen, könnte ich daraus auch ein Modul erstellen .
    Geändert von ralf (16.12.16 um 17:50 Uhr) Grund: Scripte wieder ergänzt
    MfG Ralf

  2. #2
    Registriert seit
    Oct 2016
    Beiträge
    19

    Prima Ralf, vielen Dank!
    Homematic / HUE / Sonos / Amazon Echo / Z-Wave mit IP Symcon
    Home Automation Blog: https://gorlingeek.wordpress.com/

  3. #3
    Registriert seit
    Jun 2012
    Beiträge
    142

    Hallo Ralf,

    coole Sache, vielen Dank.
    Ein Modul für den Wiffi wäre natürlich das i-Tüpfelchen.
    Grüße aus Leipzig Thomas
    RaspberryMatic; HM, HMwired, neu HMIP; Wetterstation; 1-Wire
    Hardware: IPS-Server: HP N36L WIN10

  4. #4
    Registriert seit
    Jun 2012
    Beiträge
    142

    Hallo Ralf,

    ich hatte heute mal wieder etwas Zeit und wollte meinen Wiffi in Betrieb nehmen.

    Das mit den Socket 's hat auch wunderbar funktioniert.
    Nur fehlt in deinem Beitrag oben das Skript , ist das Absicht?
    Wenn nicht, könntest du es dann noch hier einstellen.

    Vielen Dank!
    Grüße aus Leipzig Thomas
    RaspberryMatic; HM, HMwired, neu HMIP; Wetterstation; 1-Wire
    Hardware: IPS-Server: HP N36L WIN10

  5. #5
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    2,867

    Zitat Zitat von jossel Beitrag anzeigen
    Nur fehlt in deinem Beitrag oben das Skript , ist das Absicht?
    Sehr suspect, das war eigentlich mal im Beitrag enthalten, jetzt waren nur die [ PHP ] Tags drin. Ich habe es im ersten Beitrag wieder ergänzt.

    Update:
    Und jetzt auch das zweite Script zum Setzen der Parameter.

    Nachdem ich heute meinen zweiten Wiffi in Betrieb genommen haben, funktioniert das Script auch tatsächlich wie es soll. Es wurde eine weitere Dummy Instanz angelegt und die Daten werden passend gepflegt .

    Ich bin begeistert, zwischen den Feiertagen kommen noch zwei Wiffi's.
    Geändert von ralf (16.12.16 um 17:54 Uhr)
    MfG Ralf

  6. #6
    Registriert seit
    Oct 2008
    Ort
    Niedersachsen
    Beiträge
    63

    Standard Wiffi-wz Warnung beim Parameter setzen

    Moin,
    nachdem ich mir jetzt einen wiffi-wz zugelegt habe, bin ich gerade bei der Inbetriebnahme. Danke Ralf für deinen Script.
    Habe deinen zweiten Script zur Einstellung der Parameter genutzt und erhalte aber immer diese Warnung:
    "Warning: file_get_contents(http://192.168.178.121/?param:13:21: failed to open stream: HTTP request failed! &lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https://maxcdn.bootstrapcdn.com/boot....min.css&quot; in E:\IP-Symcon\scripts\30272.ips.php on line 14", .
    Der Parameter wird richtig gesetzt doch die Ausführung dauert sehr lange.
    Gleiches Verhalten beim Buzzer setzen.
    Gibt es da noch eine andere Möglichkeit außer file_get_contents?
    Gruß GMilf
    Geändert von Milf (15.01.17 um 15:11 Uhr)
    IPS 4.4 Unlimited / WIN10 x64 / LCN / RESOL BX-LAN / Viessmann Heizung / Webcams / LED RGBW-868 / SonoS / Sonoff / Fritzbox / WIFFI-WZ / Ipad / Tabs ...

  7. #7
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    2,867

    Alles, womit du Dateien laden/öffnen kannst, aber das Verhalten wird immer sehr ähnlich sein.

    Der ESP bzw. Wiffi ist wohl etwas langsam, wenn viele Parameter gesetzt werden oder die Seite öfter neu geladen wird.


    Es läuft auch gerade ein Test mit dem Wiffi-voice .
    MfG Ralf

  8. #8
    Registriert seit
    Jan 2010
    Beiträge
    77

    Moin Ralf
    Habe einen wiffi hier und habe das so wie von dir beschrieben umgesetzt. Mit script 2 konnte ich Parameter setzen, die Datenübertragung über den Socken funktionierte nicht. Habe dann das Update auf wiffi Firmware 60 durchgeführt und alles noch mal neu angelegt. Danach hat er genau einmal gesendet. In den Meldungen sehe ich jedoch dass er es versucht, bekomme aber immer ein :

    "Invalid argument supplied foreach() on line 19"

    Es wurde wie gesagt einmal sauber alles angelegt wie in deinem screenshot zu sehen und mit Daten gefüllt. Deinen Text verstehe ich so, dass der Geräuschsensor sofort übertragen sollte, das funktioniert jedoch auch nicht.

    Vielleicht weißt du wo der Fehler liegt, vielleicht liegt es auch an dem update auf Firmware 60?
    Server: raspi2, ; 1Wire + homematic im Aufbau; Sonos Play3 + Connect; FB 7390 + FritzFon MT-F;; iPhone6, iMac 27",2x raspi2 kodi über SQL; Synology 413j

  9. #9
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    2,867

    Ich habe die "60" noch nicht installiert, schaue ich mir am Wochenende an.
    MfG Ralf

  10. #10
    Registriert seit
    Jan 2010
    Beiträge
    77

    Daran liegt es wohl doch nicht. Ich bin grad nochmal auf die 53 zurück, genau das gleiche Verhalten. Obwohl sonst nichts verändert wurde sendete er ja einmal heute morgen, wundert mich. Wenn ich das script zum Setzen der Parameter nutze, werden die Parameter zuverlässig gesetzt, jedoch erscheint auch dort in der Scriptausgabe : "Error receiving data: (12152)"
    Unabhängig welche Softwareversion ich einsetze, an dem Verhalten ändert sich nichts.
    Server: raspi2, ; 1Wire + homematic im Aufbau; Sonos Play3 + Connect; FB 7390 + FritzFon MT-F;; iPhone6, iMac 27",2x raspi2 kodi über SQL; Synology 413j

Ähnliche Themen

  1. WIFFI-WZ ohne CCU betreiben
    Von brausepaul im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 21
    Letzter Beitrag: 04.12.16, 21:05
  2. Symcon App mit IPS 4 und Reverse Proxy Nutzen
    Von PaulG4H im Forum Allgemeine Diskussion
    Antworten: 2
    Letzter Beitrag: 18.02.16, 18:14
  3. Antworten: 2
    Letzter Beitrag: 22.09.13, 19:21
  4. EnOcean per KNX mit IP-Symcon nutzen
    Von Brovning im Forum KNX/EIB, LCN
    Antworten: 3
    Letzter Beitrag: 01.07.13, 16:37