+ Antworten
Seite 11 von 12 ErsteErste ... 9 10 11 12 LetzteLetzte
Ergebnis 101 bis 110 von 120

Thema: ESPeasy

  1. #101
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    861

    Zitat Zitat von UH368 Beitrag anzeigen
    Welches Script ist das ?
    DIESES HIER


    bzw. angepasst:

    PHP-Code:
    <?

    // (C) by IP-Symcon 2009
    // Trigger: z.B. alle 5 Minuten

    // http://www.ip-symcon.de/forum/threads/7566-%28W%29LAN-Watch-Dog

    $Parents IPS_GetParent($_IPS['SELF']);
    foreach(
    IPS_GetChildrenIDs($Parents) as $item){   // alle Unterobjekte
        
    $id_info IPS_GetObject($item);
        
    $id_typ $id_info['ObjectType'];
        if (
    $id_typ == 2){                                      // nur bei Variablen
            
    $id_adr $id_info['ObjectInfo'];
            
    $ping Sys_Ping($id_adr500);             // Ping max. 2 Sek. warten
            
    if($IPS_SENDER == "Execute") {                     // zum Testen
                
    echo "IP: $id_adr \n";
                echo 
    "Ping: " .(int)$ping"\n\n";
            }
            
    SetValue($item$ping);                      // Ping-Ergnis speichern
        
    }
    }

    ?>
    Geändert von BerndJ (03.07.18 um 19:07 Uhr)

  2. #102
    Registriert seit
    Jun 2005
    Beiträge
    3,502

    Diesen Scriptinhalt hatte ich genommen:
    PHP-Code:
    foreach(IPS_GetChildrenIDs($_IPS['SELF']) as $item){   // alle Unterobjekte
        
    $id_info IPS_GetObject($item); 
        
    $id_typ $id_info['ObjectType']; 
        if (
    $id_typ == 2){                                      // nur bei Variablen 
            
    $id_adr $id_info['ObjectInfo']; 
            
    $ping Sys_Ping($id_adr1000);                     // Ping max. 2 Sek. warten 
          
    if($_IPS == "Execute") {                            // zum Testen 
                
    echo "IP: $id_adr \n"
                echo 
    "Ping: " .(int)$ping"\n\n"
            } 
            
    SetValue($item$ping);                            // Ping-Ereignis speichern 
        


    Gruß Helmut

  3. #103
    Registriert seit
    Sep 2010
    Ort
    Emmerich
    Beiträge
    761

    Kann man per Rules das "send to controller" im Device ein und ausschalten ?

    Ich habe eine Counter, der soll aber nicht immer die Werte senden !
    Geändert von UH368 (06.07.18 um 23:59 Uhr)

  4. #104
    Registriert seit
    Apr 2017
    Ort
    Bayern
    Beiträge
    37

    Übermittelt jemand über eine Regel die Sensorwerte an IPS?

    Über die zB. in #63 gepostete Regel werden die Variablen nicht aufgelöst.


    Code:
     SendToHTTP XXX.XXX.XXX.XXX,YYYYY,Name=%sysname%&Temperatur=[DHT22#Temperatur]
    Code:
    GET Name=%sysname%&Temperatur=[DHT22#Temperatur] HTTP/1.1<CR><LF>Host: XXX.XXX.XXX.XXX<CR><LF>Connection: close<CR><LF><CR><LF>
    Auch über den Befehl "Event" konnte ich keinen Wert übermitteln, da SentToHTTP laut Doku eigentlich eine feste URL erfordert.

  5. #105
    Registriert seit
    Dec 2006
    Ort
    Friedberg (Hessen)
    Beiträge
    1,638

    Zitat Zitat von AlWire Beitrag anzeigen
    Übermittelt jemand über eine Regel die Sensorwerte an IPS?
    Ich habe diese Devices:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Devices_172.png 
Hits:	163 
Größe:	30.7 KB 
ID:	44979
    und sende sie so:
    Code:
    on BMP180#Druck do
    SendToHTTP 192.168.1.157,3777,/hook/172?Unit=13&Wert=[BMP180#Temp]
    SendToHTTP 192.168.1.157,3777,/hook/172?Unit=14&Wert=[BMP180#Druck]
    SendToHTTP 192.168.1.157,3777,/hook/172?Unit=15&Wert=[WLAN#RSSI]
    SendToHTTP 192.168.1.157,3777,/hook/172?Unit=16&Wert=[Batt#Analog]
    endon
    Viele Grüße Rainer
    Windows 10, RaspberryPi IPS V 5.0/1 + Testsysteme -- FHZ -- CCU2 + PiVCCU -- Phillips Hue --1-Wire, Anwesendheits-Tracker, ESP-Easy und viele, viele Spielereien , I-View, Raspberry 2, 3, Zero

  6. #106
    Registriert seit
    Apr 2017
    Ort
    Bayern
    Beiträge
    37

    Hallo Rainer,

    danke für deine Screenshot. Ich sende meine Sensorwerte eigentlich analog zu deinem Beispiel an IPS.
    Die Variablen werden trotzdem nicht aufgelöst.


    Welche ESP-Version nutzt du denn?
    Hast du einen Controller in der Weboberfläche eingerichtet?

    Grüße

    Albert

  7. #107
    Registriert seit
    Nov 2010
    Ort
    Gernsheim
    Beiträge
    498

    Hallo Gemeinde,

    Nach 4 Stunden probieren und lesen brauche ich jetzt doch mal Schützenhilfe

    Was will ich machen:
    ESP Easy und damit 8 Relais steuern und Rückmeldung an IPS bekommen.

    Was geht schon:
    Die 8 Relais kann ich mittels IPS wunderbar ein und ausschalten.

    Was geht noch nicht:
    Die Rückmeldung

    Was habe ich bereits eingerichtet:
    In Easy ESP den Controller (IPS) mit port 1024
    In IPS ein Server Socket und eine Register Variable.
    Ein Script in der Registervariable zugewiesen (mit einem Beispielcode aus einem der ersten Posts)
    Das Script ist noch nicht angepaßt, und es würde mich auch interessieren, wie das für Relais aussehen würde ?

    Allerdings denke ich doch, die Register variable sollte ihren Zeitstempel aktualisieren, wenn ich ein Relais aus IPS schalte. Das tut sie leider nicht.....

    Was ich denke, woran es liegt:
    An mir
    An einer fehlenden "rule", wobei hier ein Beispiel sehr nett wäre.

    Auswertung wäre super für die Relais und eventuell noch uptime (uptime habe ich mit 60 sec Intervall auch eingerichtet)

    Vielen lieben Dank für eure Hilfe
    Sascha

    EDIT:
    Ich habe es nun hinbekommen, dass die Uptime alle 60 Sekunden and den Controller IPS geschickt wird
    Hierbei wird die RegisterVariable auch ausgeführt, und ich habe schön den Wert in IPS.......die halbe Miete
    Leider die unwichtigere Hälfte
    Was noch nicht geht, ist den Status der 8 Relais zu bekommen......
    Das wäre noch super, aber ich weiß gerade nicht, wo ich da ansetzen soll.......Rules ? Aber was muss da drinstehen ?
    Wann werden die ausgeführt ? Immer, wenn ich ein Relais von IPS heraus schalte ?
    Und wie werte ich das in der Registervariable aus ?

    Gibts hier im Forum eigentlich Punkte für die meisten Fragen ???

    EDITEDIT:

    So, hier wäre mal ein "quick&dirty" Weg, bei dem allerdings die Betonung ganz klar auf "dirty" liegt !

    Ich habe das so gelöst, wie auf den Fotos zu sehen ist, da ich als Rückmeldung von ESP Easy einen String bekomme......eine Boolean hätte es eigentlich getan für mich.....
    Nachteil ist, das ganze braucht sehr lange....manchmal bis zu 5 Sekunden (Relais schalten aber sofort)
    Also nicht die beste Lösung einer Rückmeldung von den Relais.....

    Hier mal die gesammelten Werke, wäre sehr für Lösungsvorschläge offen

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	r1.jpg 
Hits:	55 
Größe:	67.6 KB 
ID:	45421

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	r2.jpg 
Hits:	43 
Größe:	12.9 KB 
ID:	45422

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	r3.jpg 
Hits:	70 
Größe:	167.6 KB 
ID:	45423

    Und hier die Registervariable:
    PHP-Code:
    <?

    //IPS_LogMessage("Sender ", $_IPS['SENDER']);

    if ($_IPS['SENDER'] == 'RegisterVariable'){
        
    $data $_IPS['VALUE'];

        
    $Prefix1 "&idx=";                                    // damit fängt der Datensatz an
        
    $Suffix1 "&";
        
    $Prefix2 "&svalue=";                                    // damit fängt der Datensatz an
        
    $Suffix2 "HTTP/1.1";
        
    $Prefix3 "&switchcmd=";                                    // damit fängt der Datensatz an
        
    $Suffix3 "HTTP/1.1";

        
    //$Ende1nachZeichen = 2;                                       // und ist xx Zeichen lang
        
    $AnfangID strlen($Prefix1)+(strpos($_IPS['VALUE'], $Prefix1));
        
    $EndeID strpos($_IPS['VALUE'], $Suffix1$AnfangID+1);
        
    $ID substr($_IPS['VALUE'], $AnfangID$EndeID-$AnfangID);

        
    $AnfangValue strlen($Prefix2)+(strpos($_IPS['VALUE'], $Prefix2));
        
    $EndeValue strpos($_IPS['VALUE'], $Suffix2$AnfangValue);
        
    $Value substr($_IPS['VALUE'], $AnfangValue$EndeValue-$AnfangValue-1);

        
    $AnfangSw strlen($Prefix3)+(strpos($_IPS['VALUE'], $Prefix3));
        
    $EndeSw strpos($_IPS['VALUE'], $Suffix3$AnfangSw);
        
    $Switch substr($_IPS['VALUE'], $AnfangSw$EndeSw-$AnfangSw-1);
        
    //IPS_LogMessage("Switch roh: ", $Switch);

        
    if($Switch == "On"){
           
    $Switch true;
       }
        else{
             
    $Switch false;
       }

        
    //IPS_LogMessage("Data rin: ", $data);
        //IPS_LogMessage("AnfangID: ", $AnfangID);
        //IPS_LogMessage("EndeID: ", $EndeID);
        //IPS_LogMessage("EndeValue: ", $EndeValue);
        //IPS_LogMessage("IDx: ", $ID);
        //IPS_LogMessage("Value: ", $Value);
        //IPS_LogMessage("Switch: ", $Switch);


        
    switch ($ID) {
        
             case 
    "1"// Status Relais 01
                  
    if ($Value == "n.htm?type=command&param=switchlight&idx=1&switchcmd=On&rssi=6") {
                 
    SetValueBoolean(42939 /*[Entwicklungsbereich Sascha\HTTP Commands Relais\Programm/Scripte\ESP Easy Garten\Status Relais\Relais 01]*/,1);
                 }
                 
                 if (
    $Value == "n.htm?type=command&param=switchlight&idx=1&switchcmd=Off&rssi=6") {
                 
    SetValueBoolean(42939 /*[Entwicklungsbereich Sascha\HTTP Commands Relais\Programm/Scripte\ESP Easy Garten\Status Relais\Relais 01]*/,0);
                 }
                 break;
             
             case 
    "2"// Status Relais 02
            
                  
    if ($Value == "n.htm?type=command&param=switchlight&idx=2&switchcmd=On&rssi=6") {
                 
    SetValueBoolean(12309 /*[Entwicklungsbereich Sascha\HTTP Commands Relais\Programm/Scripte\ESP Easy Garten\Status Relais\Relais 02]*/,1);
                 }
                 
                 if (
    $Value == "n.htm?type=command&param=switchlight&idx=2&switchcmd=Off&rssi=6") {
                 
    SetValueBoolean(12309 /*[Entwicklungsbereich Sascha\HTTP Commands Relais\Programm/Scripte\ESP Easy Garten\Status Relais\Relais 02]*/,0);
                 }
                 break;        
        
             case 
    "101"// Uptime
                 
    SetValueInteger(42387 /*[Entwicklungsbereich Sascha\HTTP Commands Relais\Programm/Scripte\ESP Easy Garten\Uptime in Minuten]*/$Value);
             break;
             
        }
    }

    ?>
    Geändert von Sascha (09.09.18 um 16:15 Uhr)
    "the flat earth society has members all around the globe"

  8. #108
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    861

    Standard Zauberwort json

    Zitat Zitat von Sascha Beitrag anzeigen
    ....Was geht noch nicht: Die Rückmeldung
    Hi,

    probier doch einfach mal den Weg über json Rückgabewerte, die lassen sich hervorragend einzelnen Variablen zuweisen, hab ich HIER mal etwas dargestellt. Und die Frage nach der ersten if Abfrage ist einige Beiträge dahinter beantwortet.

    mfg

    BerndJ

    PS:
    funktioniert auch beim Schalten:
    einfach mal den Befehl im Browser eingeben und schon siehste (nach kurzer Infektionszeit durch Lerneffekte) wie die Zuweisung aussehen müsste.
    Obwohl das OOP ist und bei den meisten im Anfangsstadium Knoten in den Gehirnwindungen erzeugt.

  9. #109
    Registriert seit
    Nov 2010
    Ort
    Gernsheim
    Beiträge
    498

    Danke für die Antwort und Tips......ganz schön viel zu tun

    Ich hab mal die json Zeile (http://192.168.123.41/json) mit dem Browser probiert.
    Nur leider finde ich da nichts über die gpio ports.....
    Ich versuche ja eigentlich nur eine Rückmeldung der gpio ports, an denen die Relais hängen zu bekommen.....
    Oder hab ich da etwas übersehen ?

    LG
    Sascha
    "the flat earth society has members all around the globe"

  10. #110
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    861

    Zitat Zitat von Sascha Beitrag anzeigen
    Nur leider finde ich da nichts über die gpio ports.....
    Hi,

    je nach verwendeter Firmware des ESPEasy gibt es meistens json Rückmeldungen.

    Ich hab da Sonoff Pows im Einsatz, denen sende ich:

    und es gibt die Antwort:

    {
    "log": "GPIO 12 Set to 1",
    "plugin": 1,
    "pin": 12,
    "mode": "output",
    "state": 1
    }
    also ideal um sie per json zuzuweisen.

    Bei den von mir hingegen geflashten ESP32 kommt als Antwort nix, kannste also vergessen, weil es in der Firmware raus genommen wurde.

    In der Vergangenheit hab ich schon mal den Programmaufruf /json kopiert, die Kopie /jsonext genannt und bei der Antwort alle Parameter welche ich haben wollte integriert. War die ideale Basis für ein Modul, denn er schmiss Dir alle Parameter und Werte quasi vor die Füsse.

    Ich bevorzuge für Relaiskarten den MCP23017, was wird von Deiner Seite eingesetzt?

    mfg

    BerndJ

    PS: wenn von Deiner Seite unter Devices ein Switch (hier GPIO12)

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Devices.png 
Hits:	47 
Größe:	65.3 KB 
ID:	45439

    auf den entsprechenden Ausgangspin gesetzt wird siehst Du bei Aufruf durch /json

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	json.png 
Hits:	50 
Größe:	47.5 KB 
ID:	45440

    auch den zugehörigen Status.
    Geändert von BerndJ (10.09.18 um 16:34 Uhr)