Seite 185 von 251

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 16.05.2017, 22:07
von prinzeisenherz1
Mal kurz ne frage an die Profis, wie konvertiere ich eine unsigned int um in eine Ganzzahl ohne auf oder abzurunden?
Ich möchte quasi aus nem Wert z.B 15.11 ein 15
Das soll aber auch bei 15.99 eine 15 sein


Gruß Johnny

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 16.05.2017, 22:23
von dondaik
tante G sagt:
- dtostrf ....
- https://www.arduino.cc/en/Reference/StringConstructor
- und der printbefehl hat auch noch parameter.. printf...

an der stelle "kämpfe" ich auch immer und muss je nach situation nachschlagen.... ggf ist ja ein ansatz dabei.

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 16.05.2017, 22:42
von prinzeisenherz1
Hmm.. Danke für die Tipps aber leider verstehe ich da Bahnhof

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 16.05.2017, 23:03
von cmjay
Mal kurz ne frage an die Profis, wie konvertiere ich eine unsigned int um in eine Ganzzahl ohne auf oder abzurunden?
Häh? Ein unsigned int ist doch eine Ganzzahl.
https://www.arduino.cc/en/Reference/UnsignedInt
Ich möchte quasi aus nem Wert z.B 15.11 ein 15
Das soll aber auch bei 15.99 eine 15 sein
Die C++ Funktion, die du wahrscheinlich suchst, ist floor(). Rundet eine Fliesskommazahl auf die nächst niedrigere Ganzzahl ab.
http://www.cplusplus.com/reference/cmath/floor/

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 17.05.2017, 07:20
von dondaik
@prinzeisenherz1
dann stelle den programm ein uns sage / zeige was du genau machen möchtest ...

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 17.05.2017, 09:55
von kafisc
Hi zusammen,

ich würde gerne der PIR-Sketch für die neue Firmware umbauen.
Das Schaltatkor-Skecth konnte ich erfolgreich umbauen. Leider verstehe ich nicht, wie genau ich das PIR-Sketch umbauen soll.
Könnte Ihr mir hiert evtl. einen Tipp geben? Besten Dank im Voraus!

Noch nicht umgebaut:

Code: Alles auswählen

/*
 *  PIR an HomeMatic!
 *  4. Schritt: Statusmeldungen an die CCU ueber WLAN
 * 
 *  PIR-Sensor meldet Bewegungen an eine CCU-Systemvariable
 *    
 *  Getesteter Aufbau:
 *     WeMos D1 mini
 *     PIR HC-SR501
 *     Pin-Belegung:
 *        D1: PIR HC-SR501
 *        
 *  7.Maerz 2016 —m.yoda
 */

#include <ESP8266WiFi.h> // Einbinden der WiFi-Library
#include <WiFiClient.h>

// ******* Netzwerkeinstellungen, bitte anpassen! *******
const char* ssid = "XXX"; // SSID des vorhandenen WLAN
const char* password = "XXXXXXXX"; // Passwort für das vorhandene WLAN

IPAddress gateway(192,168,1,1); // IP-Adresse des WLAN-Gateways
IPAddress subnet(255,255,255,0);  // Subnetzmaske
IPAddress ip(192,168,1,128); // feste IP-Adresse für den WeMos

const char* host = "192.168.1.18"; // IP-Adresse der CCU (mit Punkten!)
String pirCCUname = "AZ_PIR"; // Bezeichnung der CCU-Systemvariable für den PIR-Status

const byte pirPin = D1;
boolean status = LOW;
boolean statusJetzt = LOW;

String zeitstempel() { 
  char stempel[10];
  int lfdStunden = millis()/3600000;
  int lfdMinuten = millis()/60000-lfdStunden*60;
  int lfdSekunden = millis()/1000-lfdStunden*3600-lfdMinuten*60;
  sprintf (stempel,"%03d:%02d:%02d", lfdStunden, lfdMinuten, lfdSekunden);
  return stempel;
}

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(BUILTIN_LED, OUTPUT);
  status = digitalRead(pirPin);
  Serial.begin(115200); 
  Serial.println(""); // Leerzeile ausgeben
  Serial.println("WeMos PIR-Sensor");
  Serial.println("");

  // WLAN-Verbindung herstellen
  WiFi.mode(WIFI_STA);
  WiFi.config(ip, gateway, subnet); // auskommentieren, falls eine dynamische IP bezogen werden soll
  WiFi.begin(ssid, password);
  Serial.print("Verbindungsaufbau");

  // Verbindungsaufbau abwarten
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  
  // Verbindungsaufbau an den seriellen Monitor melden
  Serial.println(" erfolgreich!");
  Serial.println("");
  Serial.print("Verbunden mit: ");
  Serial.println(ssid);
  Serial.print("Signalstaerke: ");
  int rssi = WiFi.RSSI();
  Serial.print(rssi);
  Serial.println(" dBm");
  Serial.print("IP-Adresse: ");
  Serial.println(WiFi.localIP());
  Serial.println();
}

void loop() {
  statusJetzt = digitalRead(pirPin);
  if (statusJetzt != status) { // hat sich der Status geaendert? Falls ja:
    status = statusJetzt;
     // Webclient initialisieren
    WiFiClient client;
    // mit dem CCU-Port 8181 verbinden
    if (!client.connect(host, 8181)) {
      Serial.println(zeitstempel() + "  Fehler: Verbindung zur CCU konnte nicht aufgebaut werden");
    }
    // Daten an CCU melden
    client.println("GET /eriwan.exe?antwort=dom.GetObject('" + pirCCUname + "').State('" + status + "')");
	);
    digitalWrite(BUILTIN_LED, !status);
    Serial.println(zeitstempel() + "  Bewegungsmelder Status: " + String(status));
  }
}

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 17.05.2017, 15:15
von dondaik
schau mal auf "seite " 163 / 164 das sollte dir helfen.. ( ich habe leider noch nicht umgestellt )

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 20.05.2017, 09:24
von kafisc
dondaik hat geschrieben:schau mal auf "seite " 163 / 164 das sollte dir helfen.. ( ich habe leider noch nicht umgestellt )
Vielen Dank für den Tipp. Ich bekomme den PIR-Sketch leider nicht zum.
Hat noch jdm. einen Tipp parat?

Danke & viele Grüße
Kafisc

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 20.05.2017, 09:32
von dondaik
was funzt den nicht ?
der umbau des "meldestrings" ist doch dort beschrieben ( und bei eugen auf der seite auch )
ich finde im moment kein zeitfenster für den wemos um dir da zu helfen :-( ( auch wenn ich selber dringenst umstellen müßte - doch die bienen haben vorfahrt.... )

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Verfasst: 20.05.2017, 17:47
von kafisc
dondaik hat geschrieben:was funzt den nicht ?
der umbau des "meldestrings" ist doch dort beschrieben ( und bei eugen auf der seite auch )
ich finde im moment kein zeitfenster für den wemos um dir da zu helfen :-( ( auch wenn ich selber dringenst umstellen müßte - doch die bienen haben vorfahrt.... )
Sorry, hatte Tomaten vor den Augen... Jetzt funktioniert der Sketch.
Ich habe mich hierfür am Sketch von BladeRunner82 (Seite 184/#p362688) orientiert.