Es läuft soweit?
In dem Code liegt noch wesentlich mehr im Argen, als die vergessene } am Ende der loop()...
SVs Update per XML nur in bestimmten Intervallen möglch?
Moderator: Co-Administratoren
Re: SVs Update per XML nur in bestimmten Intervallen möglch?
Danke. Ja das kann gut das da noch mehr im argen ist . Aber es funktioniert . Die Anzahl der Lichtimpulse werden an die CCU als SV übertragen.
Zwar nicht immer bei jeden Sendeversuch, aber es geht dann halt beim z.b. 5 Versuch.
Deswegen will ich jetzt noch die Qualität verbessern.
Ok, deine Funktion gehört gar nicht zum Loop! Hab daher die letzte Klammer nach oben verschoben. Passt.
Ist mein erster Sketch, daher kannte ich eigentlich nur den Setup und Loop Teil.
Bisschen was hab ich noch angepasst. Aber er stört sich noch an der Definition von httpcode und DEBUG. Ich finde nicht wo/wie Du das definiert hast.
Wobei für httpcode schon: int httpCode = http.GET(); ...aber das wird vom IDE nicht akzeptiert. Generell wäre es natürlich toll und würde für meine Zwecke reichen, wenn der check ob der wert übertragen wurde iwie schlanker geht. Aber vermutlich nicht?
Hab den Code im letzten Post aktualisiert.
Zwar nicht immer bei jeden Sendeversuch, aber es geht dann halt beim z.b. 5 Versuch.
Deswegen will ich jetzt noch die Qualität verbessern.
Ok, deine Funktion gehört gar nicht zum Loop! Hab daher die letzte Klammer nach oben verschoben. Passt.
Ist mein erster Sketch, daher kannte ich eigentlich nur den Setup und Loop Teil.
Bisschen was hab ich noch angepasst. Aber er stört sich noch an der Definition von httpcode und DEBUG. Ich finde nicht wo/wie Du das definiert hast.
Wobei für httpcode schon: int httpCode = http.GET(); ...aber das wird vom IDE nicht akzeptiert. Generell wäre es natürlich toll und würde für meine Zwecke reichen, wenn der check ob der wert übertragen wurde iwie schlanker geht. Aber vermutlich nicht?
Hab den Code im letzten Post aktualisiert.
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: SVs Update per XML nur in bestimmten Intervallen möglch?
Ich verstehe den Zusammenhang nicht. Wie kann der Sketch funktionieren, wenn er sich nicht mal kompilieren lässtmafa hat geschrieben: ↑01.01.2019, 19:19Danke. Ja das kann gut das da noch mehr im argen ist . Aber es funktioniert . Die Anzahl der Lichtimpulse werden an die CCU als SV übertragen.
Zwar nicht immer bei jeden Sendeversuch, aber es geht dann halt beim z.b. 5 Versuch.
...
Aber er stört sich noch an der Definition von httpcode und DEBUG. Ich finde nicht wo/wie Du das definiert hast.
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: SVs Update per XML nur in bestimmten Intervallen möglch?
Ist nur lokal innerhalb der if() {...} deklariert und kann außerhalb nicht verwendet werden.
Das habe ich in einer anderen Datei deklariert.
Ersetze es durch Serial.println()
Hiermit solltest du erstmal weiterkommen...
Code: Alles auswählen
#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.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;
String HomematicIP = "192.168.178.65"; // Homematic IP-Adresse
#define HTTPTIMEOUT 1500
WiFiClient client;
void setup() {
Serial.begin(9600);
Serial.println();
WiFi.begin("xxxxx", "111111");
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);
setStateCCUCUxD(String(impulse));
}
}
///////
bool setStateCCUCUxD(String value) {
if (WiFi.status() == WL_CONNECTED)
{
HTTPClient http;
http.setTimeout(HTTPTIMEOUT);
String url = "http://" + String(HomematicIP) + ":8181/rega.exe?ret=dom.GetObject('Stromverbrauch').State(" + value + ")";
http.begin(url);
int httpCode = http.GET();
String payload = "";
if (httpCode != 200) { //prüft ob in der rückgabe kein null steht
Serial.println("HTTP " + value + " fail (" + String(httpCode) + ")");
} else {
Serial.println("HTTP " + value + " success");
payload = http.getString();
}
http.end();
payload = payload.substring(payload.indexOf("<ret>"));
payload = payload.substring(5, payload.indexOf("</ret>"));
return (payload != "null" && httpCode == 200);
} else ESP.restart();
}
Re: SVs Update per XML nur in bestimmten Intervallen möglch?
1000 Dank! Das hilft mir sehr mein Verständnis auszubauen und es bleibt hoffentlich nicht mein einziger Sketch .
zu deiner 1. frage. Ich hatte bis jetzt nur den reinen schreibvorgang im einsatz. Die ganze prüflogik für den fehlerfall hatte ich erst mal weg gelassen.
Dann konnte ich es kompilieren und ausführen. So läuft es aber die qualit is naja. Das ändert sich jetzt dann bald
zu deiner 1. frage. Ich hatte bis jetzt nur den reinen schreibvorgang im einsatz. Die ganze prüflogik für den fehlerfall hatte ich erst mal weg gelassen.
Dann konnte ich es kompilieren und ausführen. So läuft es aber die qualit is naja. Das ändert sich jetzt dann bald
Re: SVs Update per XML nur in bestimmten Intervallen möglch?
also das wegschreiben und die Fehlerprüfung klappt jetzt.
Der counter fängt nur immer wieder bei 0 an. Weiss noch nicht warum. Kann ein Sketch sich aufhängen und er startet neu?
Am PC konnte ich den Fehler leider noch nicht reproduzieren .
Der counter fängt nur immer wieder bei 0 an. Weiss noch nicht warum. Kann ein Sketch sich aufhängen und er startet neu?
Am PC konnte ich den Fehler leider noch nicht reproduzieren .
-
- Beiträge: 12108
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2148 Mal
- Kontaktdaten:
Re: SVs Update per XML nur in bestimmten Intervallen möglch?
Hi,
evtl. ist es zielführender, wenn du dich zunächst mehr mit der Programmierung / -sprache befasst. :/
Wenn du Sketche nur zusammenkopierst, ohne den Inhalt zu verstehen, wirst immer und immer wieder wegen kleinster Dinge um Hilfe fragen müssen...
evtl. ist es zielführender, wenn du dich zunächst mehr mit der Programmierung / -sprache befasst. :/
Wenn du Sketche nur zusammenkopierst, ohne den Inhalt zu verstehen, wirst immer und immer wieder wegen kleinster Dinge um Hilfe fragen müssen...
Z.B. wenn die WLAN Verbindung verloren geht. Vorletzte Zeile:
Code: Alles auswählen
} else ESP.restart();