#include <ESP8266WiFi.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiGeneric.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiSTA.h>
#include <ESP8266WiFiType.h>
#include <WiFiClient.h>
boolean reading = false;
boolean connected = false;
byte HomematicIP[] = { 192, 168, 178, 65 }; // Homematic IP-Adresse
WiFiClient client;
void setup() {
Serial.begin(9600);
Serial.println();
WiFi.begin("Fritz!repeater", "75093282089848339082");
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED) //LOOP solange verbindung aufgebaut wird. stoppt erst wenn wifi verbindung erfolgeich
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected to WIFI!, IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Connecting to Homematic..."); //Verbindung zu CCU Homematic
if (client.connect(HomematicIP, 80)) {
Serial.println("Connected to Homematic!");
} else {
Serial.println("Connection to Homematic failed");
}
}
void loop() {
int sensorValue = analogRead(A0); // read the input on analog pin 0
static unsigned int impulse = 0;
if (sensorValue < 100 ) {
impulse++;
delay(500);
Serial.println(sensorValue);
Serial.println(impulse);
// Messwert in Systemvariable auf der CCU eintragen
if (client.connect(HomematicIP,80)) {
Serial.println(impulse);
client.print("GET /config/xmlapi/statechange.cgi?ise_id=8112&new_value=");
client.print(impulse);
client.println(" HTTP/1.0");
client.println();
}
if (client.connected()){
client.stop();
}
}
// Serial.print("Connected, IP address2: ");
// Serial.println(WiFi.localIP());
}
Ich erfasse damit einen Sensorwert der an meine Homematic-Server (CCU) per HTTP übertragen werden soll. Die Übertragung klappt aber nicht. einiges hab ich von einem Bsp übernommen.
Unsicherheit: Die Mac Adresse is bei mir alpanummerisch. Tue mich also schwer dass in einen hex wert zu wandeln. Oder was soll ich da angeben?
Ich bekomme im Seriellen Monitor keine Meldung ob connected oder nicht. Zumind connection failed hätte ich erwartet.
ok so wie ich es oben gepostet habe funzt es jetzt. Heisst: Messwerte werden erfasst und der Count in die Homematic Systemvariable geschrieben.
Was mich aber wundert, das static-Meldungen "connecting.." und "connected" aus dem setup-Teil nicht im monitor erfasst werden. Wie kann das sein? Oder mach ich was falsch?
Ich öffne erst den monitor und dann steck ich den nodemcu ein.
Danke jetzt geht's. Bin es glaub nur falsch angegangen.
Prinzipiell funktioniert das Skript ja. Es hängt jetzt am Stromzähler und zählt die Impulse. Trotzdem hängt sich der Zähler immer wieder mal auf...sprich nach einer gewissen Zeit passiert einfach nichts mehr. Der counter in der homematic bleibt stehn. Auch wenn ich den LDR mit dem Finger abdecke. Erst wenn ich ihn kurz vom Strom nehme, geht es wieder. Wie kann ich hier den Fehler finden?
Zudem sieht es so aus als würde der counter immer wieder zurückgesetzt. Das hab ich auch noch keine Erklärung dafür. Habt ihr da ne Idee?
die aktuelle Fassung hab ich wie gesagt oben aktualisiert. Unten die Schaltung.
update: Ok also der Counter geht. Der Wert wird aber nicht mehr an die Homematic übertragen. Noch kein Plan warum. Iwann geht nichts mehr bzw dann nur noch sporadisch
ok, danke, mach ich! hatte mich auch gewundert. hatte eigentlich nur esp8266wifi ausgewählt und der IDE hat plötzlich all die anderen includes reingebuttert.