<div dir="ltr">Hallo Klaus,<br><div class="gmail_extra"><br><div class="gmail_quote">2015-11-15 20:35 GMT+01:00 Klaus Reichenecker <span dir="ltr"><<a href="mailto:kr@kr123.de" target="_blank">kr@kr123.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>





<div bgcolor="#ffffff">
<div><font size="2" face="Arial">Zufällig habe ich dieses Projekt hier 
gefunden:</font></div>
<div><font size="2" face="Arial"><a href="http://www.esp8266.nu/index.php/Main_Page" target="_blank">http://www.esp8266.nu/index.php/Main_Page</a></font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Dort wird über ein ESP-WIFI-Modul Daten an 
verschiedene Heimautomatisierungs-Software geschickt.</font></div>
<div><font size="2" face="Arial">Vorteil ist, das die Interfaces über eine 
Weboberfläche programmiert werden können, also nicht jedes mal wenns ein 
zusätzlicher Sensor ist oder sich die IP ändert wieder Änderungen am Code nötig 
sind.</font></div></div></blockquote><div><br></div><div>In der Tat ziemlich charmant!<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#ffffff">
<div><font size="2" face="Arial">Ich denke das wäre ein sehr einfacher Weg, Sensoren 
für VZ zu realisieren ?</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Platinen gibts z.B. hier für 7 €:</font></div>
<div><font size="2" face="Arial"><a href="http://www.ebay.de/itm/WIFI-ESP8266-Seriell-Dev-Modul-Drahtlos-Test-Board-Full-IO-Leads-ESP-12-TE301/311484720899?_trksid=p2047675.c100011.m1850&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D20140107083420%26meid%3D1d203b50fed94739822dba52b6ed0b3e%26pid%3D100011%26rk%3D1%26rkt%3D10%26sd%3D201464921200&tfrom=201464921200&tpos=unknow&ttype=price&talgo=origal" target="_blank">http://www.ebay.de/itm/WIFI-ESP8266-Seriell-Dev-Modul-Drahtlos-Test-Board-Full-IO-Leads-ESP-12-TE301/311484720899?_trksid=p2047675.c100011.m1850&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D20140107083420%26meid%3D1d203b50fed94739822dba52b6ed0b3e%26pid%3D100011%26rk%3D1%26rkt%3D10%26sd%3D201464921200&tfrom=201464921200&tpos=unknow&ttype=price&talgo=origal</a></font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Leider unterstützt die Software momentan nur 
verschiedene vorgegeben Heimautomatisierungs-Zentralen oder 
ThingSpeak</font></div>
<div><font size="2" face="Arial"><a href="http://www.esp8266.nu/index.php/EasyProtocols" target="_blank">http://www.esp8266.nu/index.php/EasyProtocols</a></font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Es müsste ein rel. einfaches sein, die Software so 
zu ändern, das sie auch in VZ loggt ?</font></div>
<div><font size="2" face="Arial">Mir fehlen aber leider die detailierten 
Arduino-Programmierkenntnisse, um das zu ändern.</font></div></div></blockquote><div><br></div><div>Ich überlege mir seit einiger Zeit etwas ähnliches, hatte allerdings eher daran gedacht Sensor und ESP in einem Gehäuse zu verbauen und damit WLAN-fähige Sensoren zu fabrizieren.<br><br></div><div>Entscheidender Knackpunkt für ESPeasy aus meiner Sicht ist die wirklich kleine Community. Sicher gut für Anregungen, vmtl aber nicht dauerhaft als tragfähige Basis. <br><br></div><div>Mit meinen Experimenten bin ich leider noch nicht sehr weit da die ESPs relativ zickig sind und einiges an Infrastruktur brauchen. Ich melde mich mit Update wenns was berichtenswertes gibt.<br><br></div><div>Wer programmieren oder löten kann und gerne mitmachen möchte kann sich gerne melden!<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#ffffff">
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Als, falls jemand Lust hat ?</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Viele Grüße</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Klaus</font></div></div></blockquote><div><br></div><div>Viele Grüße,<br></div><div>Andreas<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#ffffff">
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Hier noch ein Beispiel wie Daten momentan geschickt 
werden:</font></div>
<div><font size="2" face="Arial"></font> </div>
<div>//#######################################################################################################<br>//########################### 
Controller Plugin 001: Domoticz HTTP 
######################################<br>//#######################################################################################################<br><br>#define 
CPLUGIN_001<br>#define CPLUGIN_ID_001        
 1<br>#define CPLUGIN_NAME_001       "Domoticz 
HTTP"<br><br>boolean CPlugin_001(byte function, struct EventStruct 
*event)<br>{<br>  boolean success = false;<br><br>  switch 
(function)<br>  {<br>    case CPLUGIN_PROTOCOL_ADD:<br>  
    {<br>        Protocol[++protocolCount].Number 
= CPLUGIN_ID_001;<br>        
strcpy_P(Protocol[protocolCount].Name, PSTR(CPLUGIN_NAME_001));<br>    
    Protocol[protocolCount].usesMQTT = false;<br>      
  Protocol[protocolCount].usesAccount = false;<br>      
  Protocol[protocolCount].usesPassword = false;<br>      
  break;<br>      }<br><br>    case 
CPLUGIN_PROTOCOL_SEND:<br>      {<br>        
char log[80];<br>        boolean success = false;<br>  
      char host[20];<br>        
sprintf_P(host, PSTR("%u.%u.%u.%u"), Settings.Controller_IP[0], 
Settings.Controller_IP[1], Settings.Controller_IP[2], 
Settings.Controller_IP[3]);<br><br>        sprintf_P(log, 
PSTR("%s%s"), "HTTP : connecting to ", host);<br>        
addLog(LOG_LEVEL_DEBUG, log);<br>        if 
(printToWeb)<br>        {<br>        
  printWebString += log;<br>          
printWebString += "<BR>";<br>        }<br>  
      // Use WiFiClient class to create TCP connections<br>  
      WiFiClient client;<br>        if 
(!client.connect(host, Settings.ControllerPort))<br>        
{<br>          connectionFailures++;<br>    
      strcpy_P(log, PSTR("HTTP : connection failed"));<br>  
        addLog(LOG_LEVEL_ERROR, log);<br>    
      if (printToWeb)<br>          
  printWebString += F("connection failed<BR>");<br>    
      return false;<br>        }<br>  
      if (connectionFailures)<br>        
  connectionFailures--;<br><br>        // We now create 
a URI for the request<br>        String url = 
F("/json.htm?type=command&param=udevice&idx=");<br>      
  url += event->idx;<br><br>        switch 
(event->sensorType)<br>        {<br>      
    case SENSOR_TYPE_SINGLE:            
          // single value sensor, used for Dallas, 
BH1750, etc<br>            url += 
F("&svalue=");<br>            url += 
UserVar[event->BaseVarIndex];<br>            
break;<br>          case SENSOR_TYPE_TEMP_HUM:  
                    // temp + 
hum + hum_stat, used for DHT11<br>            url 
+= F("&svalue=");<br>            url += 
UserVar[event->BaseVarIndex];<br>            
url += ";";<br>            url += 
UserVar[event->BaseVarIndex + 1];<br>          
  url += ";0";<br>            
break;<br>          case SENSOR_TYPE_TEMP_BARO:  
                    // temp + 
hum + hum_stat + bar + bar_fore, used for BMP085<br>        
    url += F("&svalue=");<br>          
  url += UserVar[event->BaseVarIndex];<br>        
    url += ";0;0;";<br>            url 
+= UserVar[event->BaseVarIndex + 1];<br>          
  url += ";0";<br>            
break;<br>          case SENSOR_TYPE_SWITCH:<br>  
          url = 
F("/json.htm?type=command&param=switchlight&idx=");<br>    
        url += event->idx;<br>        
    url += F("&switchcmd=");<br>          
  if (UserVar[event->BaseVarIndex] == 0)<br>        
      url += "Off";<br>            
else<br>              url += "On";<br>  
          break;<br>          
case SENSOR_TYPE_DIMMER:<br>            url = 
F("/json.htm?type=command&param=switchlight&idx=");<br>    
        url += event->idx;<br>        
    url += F("&switchcmd=");<br>          
  if (UserVar[event->BaseVarIndex] == 0)<br>        
      url += "Off";<br>            
else<br>            {<br>      
        url += F("Set%20Level&level=");<br>    
          url += 
UserVar[event->BaseVarIndex];<br>            
}<br>            break;<br>      
  }<br><br>        url.toCharArray(log, 80);<br>  
      addLog(LOG_LEVEL_DEBUG_MORE, log);<br>      
  if (printToWeb)<br>        {<br>      
    printWebString += log;<br>          
printWebString += "<BR>";<br>        }<br><br>  
      // This will send the request to the server<br>  
      client.print(String("GET ") + url + " HTTP/1.1\r\n" 
+<br>                    
 "Host: " + host + "\r\n" +<br>            
         "Connection: close\r\n\r\n");<br><br>  
      unsigned long timer = millis() + 200;<br>    
    while (!client.available() && millis() < 
timer)<br>          delay(1);<br><br>    
    // Read all the lines of the reply from server and print them to 
Serial<br>        while (client.available()) {<br>  
        String line = 
client.readStringUntil('\n');<br>          
line.toCharArray(log, 80);<br>          
addLog(LOG_LEVEL_DEBUG_MORE, log);<br>          if 
(line.substring(0, 15) == "HTTP/1.1 200 OK")<br>        
  {<br>            strcpy_P(log, PSTR("HTTP : 
Succes!"));<br>            addLog(LOG_LEVEL_DEBUG, 
log);<br>            if (printToWeb)<br>  
            printWebString += 
F("Success<BR>");<br>            success = 
true;<br>          }<br>        
  delay(1);<br>        }<br>        
strcpy_P(log, PSTR("HTTP : closing connection"));<br>        
addLog(LOG_LEVEL_DEBUG, log);<br>        if 
(printToWeb)<br>          printWebString += F("closing 
connection<BR>");<br><br>        
client.flush();<br>        client.stop();<br><br>  
      break;<br>      }<br><br>  }<br>  
return success;<br>}<br><br>boolean Domoticz_getData(int idx, float 
*data)<br>{<br>  boolean success = false;<br>  char 
host[20];<br>  sprintf_P(host, PSTR("%u.%u.%u.%u"), 
Settings.Controller_IP[0], Settings.Controller_IP[1], Settings.Controller_IP[2], 
Settings.Controller_IP[3]);<br><br>  // Use WiFiClient class to create TCP 
connections<br>  WiFiClient client;<br>  if (!client.connect(host, 
Settings.ControllerPort))<br>  {<br>    
connectionFailures++;<br>    return false;<br>  }<br>  if 
(connectionFailures)<br>    connectionFailures--;<br><br>  // We 
now create a URI for the request<br>  String url = 
F("/json.htm?type=devices&rid=");<br>  url += idx;<br><br>  // 
This will send the request to the server<br>  client.print(String("GET ") + 
url + " HTTP/1.1\r\n" +<br>              
 "Host: " + host + "\r\n" +<br>            
   "Connection: close\r\n\r\n");<br><br>  unsigned long timer = 
millis() + 200;<br>  while (!client.available() && millis() < 
timer)<br>    delay(1);<br><br>  // Read all the lines of the 
reply from server and print them to Serial<br><br>  while 
(client.available()) {<br>    String line = 
client.readStringUntil('\n');<br>    if (line.substring(10, 14) == 
"Data")<br>    {<br>      String strValue = 
line.substring(19);<br>      byte pos = strValue.indexOf(' 
');<br>      strValue = strValue.substring(0, pos);<br>  
    strValue.trim();<br>      float value = 
strValue.toFloat();<br>      *data = value;<br>    
  success = true;<br>    }<br>  }<br>  return 
success;<br>}<br></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial"></font> </div></div>
</blockquote></div><br></div></div>