Variable per client.print übertragen

Hallo,
ich habe folgendes Sketch

#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.

  1. 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?

  2. Ich bekomme im Seriellen Monitor keine Meldung ob connected oder nicht. Zumind connection failed hätte ich erwartet.

Hat jmd ne Idee?

Gib Dir doch erst mal die IP aus, nachdem Du Ethernet initialisiert hast.

Was für ein Ethernetmodul/-shield hast Du? Welcher Ethernetchip?

Gruß Tommy

Ich hab ne nodemcu mit esp8266. Das mit der ip versuch ich nachher. Muss noch kuckn wie das geht

Dann solltest Du auch die Libs vom ESP8266 für WiFi und nicht die vom Ethernet benutzen.

Gruß Tommy

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.

eierfeile:
Ich öffne erst den monitor und dann steck ich den nodemcu ein.

Dann solltest Du den Monitor eigentlich nicht aufbekommen. Der will bei mir eine bestehende COM-Verbindung.
Stelle mal noch eine Ausgabe rein:

Serial.begin(...);
Serial.println("\n\nStart");

Gruß Tommy

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?

Wie sollen wir das ohne aktuelle Fassung des Sketches und ohne Schaltung wissen?

Gruß Tommy

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

Du solltest mal Deine #include aufräumen. Da sind einige Sachen drin, die Du nicht benutzt/brauchst bzw. die doppelt sind.

z.B.:
Da Du kein HTTPS machst, kann alles mit Secure und Bear raus., Ap und WiFiServer und UDP kann auch weg.
Das ist noch nicht alles.

Gruß Tommy

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.

Das würde mich stark verwundern, wenn es wirklich so gewesen wäre.

Gruß Tommy

pobier's aus. habs gerade nochmal für dich "erfolgeich" getestet :wink:

Ok, die IDE (1.8.7) macht tatsächlich den Murks, wenn man die Esp8266WiFi über die Bibliotheksverwaltung einfügt.

Ich habe es bisher nicht gemerkt, weil ich mit Notepad++ als externen Editor arbeite und dort meine #includes selbst rein schreibe.

Gruß Tommy