Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Miragolix

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 11
    • Best 0
    • Groups 0

    Miragolix

    @Miragolix

    0
    Reputation
    299
    Profile views
    11
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Miragolix Follow

    Latest posts made by Miragolix

    • Iobroker / vis bleibt teilweise hängen

      Hallo,

      Iobroker bleibt bei mir teilweise bis zu 4 minuten "hängen". Wenn ich auf der Seite xxx.xxx.xxx.xxx:8081 "arbeite" bleibt diese plötzlich, also nicht erst wenn sie was erkennbar tun muss hängen. Die Seite wird dunkel und der Kreis beginnt sich zu drehen. Nach ca. 3-5 minuten geht es plötzlich wieder.

      Ich komme dann nicht mal mit Putty auf den Raspberry. Adapterupdates bleiben teilweise stehen oder enden nie. Am besten geht es noch unter Putty mit Iobroker update bzw. upgrade. Hier läuft es zu 99% durch.

      Da ich unter Linux leiter nur die Grundfunktionen einigermaßen behersche, bitte ich um hilfe. Ich möchte nicht kompl. neu aufsetzen, bzw. nur wenn nicht anders möglich.

      Gibt es nicht eine "reinigungsfunktion", oder woran kann es noch liegen? Was für Info´s braucht ihr von mir.

      Iobroker läuft bei mir auf einen Raspberry 3b.

      Platform: linux

      Architecture: arm

      CPUs: 4

      Speed: 1200 MHz

      Model: ARMv7 Processor rev 4 (v7l)

      RAM: 927.1 MB

      System uptime: 00:11:03

      Node.js: v8.12.0

      NPM: 4.6.1

      adapters count: 229

      Uptime: 01:01:27

      Danke

      posted in Error/Bug
      M
      Miragolix
    • RE: Hilfe für Sketch für Wemos mit DHT11 in IoBroker

      Hallo Tom,

      vielen Dank für Deine Hilfe. Der Sketch funktioniert.

      Super, Danke

      Gruß

      Miragolix

      posted in Hardware
      M
      Miragolix
    • RE: Hilfe für Sketch für Wemos mit DHT11 in IoBroker

      Hallo,

      ja klar, jabe ich vergessen:

      ! Arduino: 1.8.4 (Windows 10), Board: "WeMos D1 R2 & mini, 80 MHz, 4M (3M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 921600"
      ! C:\Users\Miragolix\Desktop\iobroker_Wemos\iobroker_Wemos.ino: In function 'void loop()':
      ! iobroker_Wemos:541: error: converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
      ! melde_ioBroker(dpNameIoBrokerTemp , (int)temperature);
      ! ^
      ! iobroker_Wemos:313: error: initializing argument 2 of 'void melde_ioBroker(String, String)'
      ! void melde_ioBroker(String datenpunktName, String wert) {
      ! ^
      ! iobroker_Wemos:542: error: converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
      ! melde_ioBroker(dpNameIoBrokerHum , (int)humidity));
      ! ^
      ! iobroker_Wemos:313: error: initializing argument 2 of 'void melde_ioBroker(String, String)'
      ! void melde_ioBroker(String datenpunktName, String wert) {
      ! ^
      ! iobroker_Wemos:542: error: expected ';' before ')' token
      ! melde_ioBroker(dpNameIoBrokerHum , (int)humidity));
      ! ^
      ! exit status 1
      ! converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'
      ! Dieser Bericht wäre detaillierter, wenn die Option
      ! "Ausführliche Ausgabe während der Kompilierung"
      ! in Datei -> Voreinstellungen aktiviert wäre.

      Wenn ich es richtig verstehe, liegt es an dem (int). Selbst wenn ich dieses (int) lösche kommt die gleiche Fehlermeldung.

      Nur wenn ich //(int)temper….. bzw. //(int)humidity)); schreibe kommt folgende Fehlermeldung.

      ! Arduino: 1.8.4 (Windows 10), Board: "WeMos D1 R2 & mini, 80 MHz, 4M (3M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 921600"
      ! C:\Users\Miragolix\Desktop\iobroker_Wemos\iobroker_Wemos.ino: In function 'void loop()':
      ! iobroker_Wemos:543: error: expected primary-expression before '}' token
      ! }
      ! ^
      ! iobroker_Wemos:543: error: expected ';' before '}' token
      ! exit status 1
      ! expected primary-expression before '}' token
      ! Dieser Bericht wäre detaillierter, wenn die Option
      ! "Ausführliche Ausgabe während der Kompilierung"
      ! in Datei -> Voreinstellungen aktiviert wäre.

      Der Rest läuft, wenn ich den Ursprüngliche Sketch (ohne DHT11) nehme geht alles. Die Datenpunkte werden mir angezeigt.

      Vielen Dank

      posted in Hardware
      M
      Miragolix
    • Hilfe für Sketch für Wemos mit DHT11 in IoBroker

      Hallo,

      ich brauche bitte Hilfe von Programmierern. Ich habe hier aus dem Forum, von einen sehr netten Mitglied einen Sketch bekommen um den Wemos D1 mini mit dem IObroker zur verbinden. Das hat auch sehr gut und stabil funktioniert.

      Nun soll der Wemos aber auch eine Aufgabe erfüllen, er soll die Temp und die Feuchtigkeit mit einem DHT11 ermitteln und über den Java Script als Datenpunkt an den IObroker weitergeben.

      Der Sketch für den DHT11 (der einzeln auch funktioniert hat) wurde mir bereits integriert, doch leider kommen Fehlermeldungen.

      Ich habe den Sketch (Verbindung mit IObroker mit integrierten DHT11) unten angehängt.

      Wer kann mir helfen, um den Wemos in die Haussteuerung zu integrieren??

      Vielen Dank

      Sketch IObroker mit DHT11 :

      ! /*
      ! * WeMos ioBroker Basis Sketch V 1.0.0
      ! *
      ! * verbindet sich mit dem vorhandenen WLAN als Server
      ! * und schreibt die Daten in ioBroker Datenpunkte
      ! *
      ! * Auf Seite ioBroker muss der Adapter "simpleAPI" installiert und aktiv sein
      ! *
      ! * ioBroker Skript zum Anlegen der notwendigen Datenpunkte: xxxxxx.js (V1.0.0)
      ! *
      ! * Skript von ruhr70
      ! *
      ! * Inspieriert von:
      ! * eric2905 (Anpassung seines Basis-Skripts für Weomos -> ioBroker)
      ! * http://homematic-forum.de/forum/viewtop … 31&t=29321
      ! * http://www.renmet.com/wiki/index.php?title=Hauptseite
      ! *
      ! * Ausgabe:
      ! * - Zugriff per Browser auf die IP des Wemos
      ! * - Datenpunkte in ioBroker
      ! * - Serieller Monitor in der Arduino IDE
      ! *
      ! * Steuerung über HTTP-Befehle:
      ! * "<ip-adresse>/heartbeat?sets=<wert>" Schaltet den Heartbeat ein/aus (true/false)
      ! *
      ! *
      ! * Bedeutung der WiFi.status() Meldungen
      ! *
      ! * 3 WL_CONNECTED // assigned when connected to a WiFi network;
      ! * 255 WL_NO_SHIELD // assigned when no WiFi shield is present;
      ! * 0 WL_IDLE_STATUS // it is a temporary status assigned when WiFi.begin() is called and remains active until the number of attempts expires (resulting in WL_CONNECT_FAILED) or a connection is established (resulting in WL_CONNECTED);
      ! * 1 WL_NO_SSID_AVAIL // assigned when no SSID are available;
      ! * 2 WL_SCAN_COMPLETED // assigned when the scan networks is completed;
      ! * 4 WL_CONNECT_FAILED // assigned when the connection fails for all the attempts;
      ! * 5 WL_CONNECTION_LOST// assigned when the connection is lost;
      ! * 6 WL_DISCONNECTED
      ! *
      ! /
      ! # define WM_IO_version "v1.0.0" // Version des Skripts (Ausgabe seriell und auf der Webseite)
      ! # define WM_IO_skriptname "ioBroker Basissketch" // Name des Skripts (Ausgabe seriell und auf der Webseite)
      ! # define WM_IO_device_name "51" // Name des Wemosgeräts (für die ioBroker Datenpunkte)
      ! # define WM_IO_WLAN_ssid "nix Verloren" // ssid des WLANs
      ! # define WM_IO_WLAN_password "KacKnOOp" // Passwort des WLANs
      ! # define WM_IO_iobroker_host "192.168.178.3" // IP oder FQDN von ioBroker
      ! # define WM_IO_iobroker_port 8087 // ioBroker Portnummer Simple-API-Adapter
      ! # define WM_IO_serial_speed 115200 // Geschwindigkeit der seriellen Ausgabe (serieller Monitor in der IDE)
      ! # define WM_IO_heartbead_LED D4 // LED, die für den Heartbeat verwendet wird (D4 ist mit der internen LED verbunden)
      ! # define WM_IO_heartbeat_on true // Heartbeat on (keine WLAN Verbindung wird auch bei on:false signalisiert)
      ! #include <simpledht.h>// for DHT11,
      ! // VCC: 5V or 3V
      ! // GND: GND
      ! // DATA: 2
      ! int pinDHT11 = 2;
      ! SimpleDHT11 dht11;
      ! const String dpNameIoBrokerTemp = "dht11.temp";
      ! const String dpNameIoBrokerHum = "dht11.hum";
      ! #include <esp8266wifi.h>// https://github.com/ekstrand/ESP8266wifi
      ! #include <esp8266webserver.h>// Webserver
      ! // Bibliotheken für Sensoren und Anschaltungen
      ! // #include <wire.h>// für Geräte, die den I2C-Bus verwenden (https://www.arduino.cc/en/Reference/Wire / http://html.szaktilla.de/arduino/6.html));
      ! // ******* Wartezeit in Sekunden zwischen 2 Messungen/Vorgängen, bitte anpassen! *******
      ! unsigned long deltaMessungSekunden = 60; // Intervall für Messungen
      ! unsigned long deltaSysinfosSekunden = 5 * 60; // Intervall, in dem rssi und uptime an ioBroker übertragen wird
      ! unsigned long deltaHeartbeatMillisOK = 3000; // Heartbeat-Intervall bei WIFI Verbindung
      ! unsigned long deltaHeartbeatMillisError = 1000; // Heartbeat-Intervall keine WLAN Verbindung
      ! // ******* Netzwerkeinstellungen, bitte anpassen! *******
      ! const char
      ssid = WM_IO_WLAN_ssid; // SSID des vorhandenen WLANs
      ! const char* password = WM_IO_WLAN_password; // Passwort für das vorhandene WLAN
      ! // wenn nicht DHCP genutzt werden soll, sondern eine feste IP (siehe auch im Setup):
      ! //IPAddress gateway(192,168,178,1); // IP-Adresse des WLAN-Gateways
      ! //IPAddress subnet(255,255,255,0); // Subnetzmaske
      ! //IPAddress ip(192,168,178,180); // feste IP-Adresse für den WeMos
      ! // ******* ioBroker *******
      ! // host als FQDN ODER IP angeben:
      ! //const char* host = "iobroker.fritz.box"; // FQDN des ioBroker-Servers
      ! const char* host = WM_IO_iobroker_host; // IP des ioBroker-Servers
      ! const int httpPort = WM_IO_iobroker_port; //Port des simpleAPI-Adapters in ioBroker
      ! ESP8266WebServer server(80); // Webserver des Wemos (ESP8266WebServer.h) initialisieren auf Port 80
      ! // Geschwindigkeit für die serielle Ausgabe (Serieller Monitor)
      ! const unsigned int serialSpeed = WM_IO_serial_speed;
      ! // =========== Einstellungen fuer Meldungen an ioBoker, bitte anpassen! *******
      ! // Pfad + Gerät + Datenpunkte müssen in ioBroker angelegt sein!!
      ! // das ioBroker Skript xxxx.js legt die Datenpunkte an
      ! const String ioBrokerBasisPath = "javascript.0.Wemos."; // Basispfad zum Datenpunkt in ioBroker
      ! const String ioBrokerDevice = "Device." WM_IO_device_name "."; // Gerätename in ioBroker (alle Geräte sollten mit "Device." beginnen)
      ! // Datenpunkte für die Wemos Systeminfos
      ! const String dpNameIoBrokerLastStart = "last_start"; // im Basis Pfad für alle Wemos Geräte identisch
      ! // Datenpunkte: Individuelle Wemos Systeminfos
      ! const String dpNameIoBrokerRssi = "Systeminfo.rssi";
      ! const String dpNameIoBrokerUptime = "Systeminfo.uptime";
      ! const String dpNameIoBrokerSsid = "Systeminfo.ssid";
      ! const String dpNameIoBrokerWemosIp = "Systeminfo.ip";
      ! const String dpNameIoBrokerWemosMac = "Systeminfo.mac";
      ! // Datenpunkte für die Messwerte
      ! const String dpNameIoBrokerDemo1 = "WemosDemo1"; // Bezeichnung des ioBroker-Datenpunktes 1 für die gemessene Temperatur
      ! const String dpNameIoBrokerDemo2 = "WemosDemo2"; // Bezeichnung des ioBroker-Datenpunktes 2 für die gemessene Temperatur
      ! // Variablen alte Werte für die Messpunkte (für den Vergleich: "nur bei Änderung übermitteln)
      ! String ioBrokerDemo1ValueAlt = "";
      ! String ioBrokerDemo2ValueAlt = "";
      ! // ******* Heartbeat *******
      ! boolean heartbeatOn = true; // true - Heartbeat über LED einschalten
      ! // =========== Allg. Variablen - nicht anfassen 😉 !!! *******
      ! unsigned long intervallLastMillis[] = {0,0,0,0,0}; // max. 5 Intervalle (0-4)
      ! byte wifiLastStatus =0;
      ! // globale Variable mit der Mac-Adresse des WLAN-Moduls
      ! char MAC_char[18];
      ! // Kommando an ioBroker und Rückantwort
      ! String ioBrokerSimpleApiCommand = "";
      ! String ioBrokerSimpleApiAntwort = "";
      ! // Zeitstempel (uptime) für Debug-Ausgabe berechnen
      ! // =======================================================================
      ! // nach ca. 49,6 Tagen erfolgt ein Überlauf und der Zeitstempel fängt wieder bei 0 an
      ! String zeitstempel() { // Betriebszeit als Stunde:Minute:Sekunde
      ! char stempel[10];
      ! int lfdStunden = millis()/3600000;
      ! int lfdMinuten = millis()/60000-lfdStunden60;
      ! int lfdSekunden = millis()/1000-lfdStunden
      3600-lfdMinuten*60;
      ! sprintf (stempel,"%03d:%02d:%02d", lfdStunden, lfdMinuten, lfdSekunden);
      ! return stempel;
      ! }
      ! // =========== IP-Adresse ermitteln *******
      ! String myIp() {
      ! char myIpString[24];
      ! IPAddress myIp = WiFi.localIP();
      ! sprintf(myIpString, "%d.%d.%d.%d", myIp[0], myIp[1], myIp[2], myIp[3]);
      ! return myIpString;
      ! }
      ! // =========== MAC-Adresse ermitteln *******
      ! // See more at: http://www.esp8266.com/viewtopic.php?f= … jHXQH.dpuf
      ! void myMac() {
      ! uint8_t MAC_array[6];
      ! // MAC-Adresse ermitteln und ausgeben
      ! WiFi.macAddress(MAC_array); // die 6 Byte der MAC-Adresse auselsen und in ein Array schreiben
      ! for (int i = 0; i < sizeof(MAC_array); ++i){
      ! sprintf(MAC_char,"%s%02x:",MAC_char,MAC_array__);
      ! }
      ! MAC_char[strlen(MAC_char)-1] = '\0'; // letztes Zeichen ":" kürzen
      ! //MAC_char[strlen(MAC_char)-1] = 0; // letztes Zeichen ":" kürzen
      ! // MAC-Adresse steht in der globalen Variable: MAC_char
      ! }
      ! // =========== Meldestring an ioBroker beim Start - hallo hier bin ich (Last Start) *******
      ! String lastStart() {
      ! String lastStartString = "["" + myIp() + "","" + MAC_char + "","" + zeitstempel() + ""]";
      ! //String lastStartString = "["" + myIp() + "","" + myMac() + "","" + zeitstempel() + ""]";
      ! return lastStartString;
      ! }
      ! // ===== wandelt bool in true/false String um =====
      ! String logikBool2Str(boolean logikBool) {
      ! String logikStr = "true";
      ! if(!logikBool) {logikStr = "false";}
      ! return logikStr;
      ! }
      ! // =========== Intervalle *******
      ! boolean intervall(byte intervallArr, int millisekunden) {
      ! if(millis() - intervallLastMillis[intervallArr] > millisekunden) {
      ! intervallLastMillis[intervallArr] = millis();
      ! return true;
      ! }
      ! return false;
      ! }
      ! void heartbeatIntervall() {
      ! unsigned long intervall3 = deltaHeartbeatMillisOK;
      ! if(WiFi.status() != WL_CONNECTED) {
      ! intervall3 = deltaHeartbeatMillisError;
      ! }
      ! else {
      ! if(wifiLastStatus != WiFi.status()) {
      ! delay(200);
      ! melde_ioBroker(dpNameIoBrokerLastStart, lastStart()); // Hallo ioBroker, hier bin ich. Wemos aktiv und gestartet.
      ! }
      ! }
      ! wifiLastStatus = WiFi.status();
      ! if(intervall(3, intervall3)) {
      ! // Heartbeat
      ! if(heartbeatOn || (WiFi.status() != WL_CONNECTED)) { // Heartbeat über LED, wenn eingeschaltet ODER WLAN Verbindung verloren
      ! digitalWrite(WM_IO_heartbead_LED, 0);
      ! delay(50);
      ! digitalWrite(WM_IO_heartbead_LED, 1);
      ! if(WiFi.status() != WL_CONNECTED) {
      ! Serial.print(".");
      ! Serial.print(WiFi.status());
      ! }
      ! }
      ! }
      ! }
      ! // =========== Webserver *******
      ! void homepage() { // bei Aufruf des Root-Verzeichnisses
      ! String betriebszeit = zeitstempel();
      ! String antwort = "";
      ! int rssi = WiFi.RSSI();
      ! antwort = "WeMos \t" WM_IO_skriptname " (" WM_IO_version ")";
      ! antwort = antwort + "\n\n";
      ! antwort = antwort + "\tBetriebszeit: " + betriebszeit + " (Std:Min:Sek)\n";
      ! antwort = antwort + "\tVerbunden mit: " + ssid + "\n";
      ! antwort = antwort + "\tSignalstaerke: " + String(rssi) + " dBm\n";
      ! antwort = antwort + "\tIP: " + myIp() + "\n";
      ! antwort = antwort + "\tMAC: " + MAC_char;
      ! antwort = antwort + "\n\n";
      ! antwort = antwort + "ioBroker: \n";
      ! antwort = antwort + "\tIP: " + host + "\tPort: " + httpPort;
      ! antwort = antwort + "\n\n";
      ! antwort = antwort + "Systemparameter: \n";
      ! antwort = antwort + "\tCOM-Port: "+ serialSpeed + " Baud\n";
      ! antwort = antwort + "\tIntervall: "+ deltaMessungSekunden + " Sek.\n";
      ! antwort = antwort + "\tHeartbeat LED: "+ logikBool2Str(heartbeatOn);
      ! antwort = antwort + "\n\n";
      ! antwort = antwort + "HTTP-Befehlsuebersicht:\n\n";
      ! antwort = antwort + "\thttp://"+myIp()+"/heartbeat?set=<wert>\n\t\tSchaltet den LED Heartbeat ein/aus. ( <wert>= true/false)\n";
      ! antwort = antwort + "\n\n";
      ! antwort = antwort + "Letzes Kommando an ioBroker:\n";
      ! antwort = antwort + "\t" + ioBrokerSimpleApiCommand;
      ! antwort = antwort + "\n\n";
      ! antwort = antwort + "Letzte Antwort ioBroker: \n\n" + ioBrokerSimpleApiAntwort;
      ! server.send(300, "text/plain", antwort);
      ! delay(150);
      ! Serial.println(zeitstempel() + " unspezifische HTTP-Anfrage (Root-Verzeichnis) an den Wemos");
      ! }
      ! void webSetHeartbeat() { // bei Aufruf von "…/heartbeat"
      ! String set = server.arg("set");
      ! if((set == "true") || (set == "1")) {
      ! heartbeatOn = true;
      ! server.send(200, "text/plain", "Heartbeat ist eingeschaltet");
      ! delay(100);
      ! Serial.println(zeitstempel() + " Heartbeat ist eingeschaltt");
      ! }
      ! else if((set == "false") || (set == "0")) {
      ! heartbeatOn = false;
      ! server.send(200, "text/plain", "Heartbeat ist ausgeschaltet");
      ! delay(100);
      ! Serial.println(zeitstempel() + " Heartbeat ist ausgeschaltt");
      ! }
      ! else {
      ! server.send(200, "text/plain", "ungueltiger Aufruf. /heartbeat?set= <wert>\t <wert>= true/false");
      ! delay(100);
      ! Serial.println(zeitstempel() + " ungueltiger Aufruf. /heartbeat?set=<wert>");
      ! }
      ! }
      ! // Melderoutine an ioBroker
      ! // =======================================================================
      ! // &prettyPrint sorgt für die Rückmeldung des JSON in mehren Zeilen
      ! // https://github.com/ioBroker/ioBroker.si ... DME.md#set
      ! void melde_ioBroker(String datenpunktName, String wert) {
      ! String dp = ioBrokerBasisPath + ioBrokerDevice + datenpunktName;
      ! if (datenpunktName == dpNameIoBrokerLastStart) {
      ! dp = ioBrokerBasisPath + datenpunktName; // "Hallo ioBroker hier bin ich" -> Datenpunkt deviceunabhängig
      ! }
      ! ioBrokerSimpleApiAntwort = ""; // globale Variale für die Rückantwort von ioBroker
      ! Serial.println("\n\n" + zeitstempel() + " <- melde_ioBroker Start\n");
      ! WiFiClient client; // Webclient initialisieren
      ! if (!client.connect(host, httpPort)) { // mit dem CCU-Port verbinden
      ! Serial.println(zeitstempel() + " Fehler: Verbindung zum ioBroker konnte nicht aufgebaut werden (Eric2905)");
      ! ioBrokerSimpleApiAntwort = zeitstempel() + " Fehler: Verbindung zum ioBroker konnte nicht aufgebaut werden";
      ! delay(100);
      ! return;
      ! }
      ! String meldung = "GET /set/" + dp + "?value=" + wert + "&prettyPrint HTTP/1.1";
      ! Serial.println(meldung);
      ! client.println(meldung);
      ! ioBrokerSimpleApiCommand = zeitstempel() + ": " + meldung;
      ! client.println();
      ! delay(1000);
      ! Serial.println();
      ! ioBrokerSimpleApiAntwort = "\t"+zeitstempel() + ":\n";
      ! while(client.available()){ // Antwort des ioBrokers zeilenweise auslesen
      ! String zeile = "";
      ! zeile = client.readStringUntil('\n');
      ! Serial.println(zeile);
      ! ioBrokerSimpleApiAntwort = ioBrokerSimpleApiAntwort + "\t" + zeile + "\n";
      ! }
      ! Serial.println();
      ! Serial.println(zeitstempel() + " Werte an ioBroker gemeldet --> ");
      ! }
      ! // regelmässige Systeminfos an ioBroker (RSSI und uptime)
      ! // =======================================================================
      ! void systeminfos() {
      ! int rssi = WiFi.RSSI();
      ! String uptime = zeitstempel();
      ! char tmp[10];
      ! dtostrf(rssi, 1/minStringWidthIncDecimalPoint/, 0/numVarsAfterDecimal/, tmp);
      ! String rssiStr = tmp;
      ! melde_ioBroker(dpNameIoBrokerRssi , rssiStr);
      ! melde_ioBroker(dpNameIoBrokerUptime , uptime);
      ! }
      ! // Mess-Routine
      ! // =======================================================================
      ! // ausgabe = 0 // Messung wird nur ausgegeben, wenn eine Änderung der Messwerte erfolgte
      ! // ausgabe = 1 // Messung wird immer ausgegeben, auch wenn die Messwerte gleich geblieben sind
      ! // alles Messwerte werden als String an ioBroker übermittelt und müssen vor dem Aufruf
      ! // der Funktion melde_ioBroker in einen String gewandelt werden.
      ! void messung(boolean ausgabe) {
      ! //Hier kommt dann der Mess-Code rein (oder die echten Messwerte)
      ! float ioBrokerDemo1Value = 123;
      ! float ioBrokerDemo2Value = 456;
      ! // Umwandlung float in String
      ! char tmp[10];
      ! dtostrf(ioBrokerDemo1Value, 1/minStringWidthIncDecimalPoint/, 2/numVarsAfterDecimal/, tmp);
      ! String out1 = tmp;
      ! dtostrf(ioBrokerDemo2Value, 1/minStringWidthIncDecimalPoint/, 2/numVarsAfterDecimal/, tmp);
      ! String out2 = tmp;
      ! // Messwerte schreiben, wenn sich der Wert geändert hat
      ! if ((out1 != ioBrokerDemo1ValueAlt) || (ausgabe == 1)) {
      ! melde_ioBroker(dpNameIoBrokerDemo1,out1);
      ! ioBrokerDemo1ValueAlt = out1;
      ! }
      ! if ((out2 != ioBrokerDemo2ValueAlt) || (ausgabe == 1)) {
      ! melde_ioBroker(dpNameIoBrokerDemo2,out2);
      ! ioBrokerDemo2ValueAlt = out2;
      ! }
      ! }
      ! // =======================================================================
      ! // setup() - Setup-Routine
      ! // =======================================================================
      ! void setup() {
      ! // Heartbeat
      ! pinMode(WM_IO_heartbead_LED, OUTPUT); // Pin "WM_IO_heartbead_LED" wird als Output definiert, die interne LED ist mit D4 "fest verdrahtet"
      ! digitalWrite(WM_IO_heartbead_LED, 1); // 1 = LED aus
      ! // Seriellen Monitor für Kontrollausgaben öffnen
      ! Serial.begin(serialSpeed); // initialize serial (Geschwindigkeit in der Variable "serialSpeed")
      ! delay(10);
      ! Serial.println("");
      ! Serial.println("WeMos - " WM_IO_skriptname " (" WM_IO_version ")");
      ! Serial.println("");
      ! // WLAN-Verbindung herstellen
      ! //WiFi.config(ip, gateway, subnet); // auskommentieren, falls eine dynamische IP bezogen werden soll
      ! WiFi.begin(ssid, password);
      ! Serial.println("Verbindungsaufbau zur ssid: " WM_IO_WLAN_ssid);
      ! Serial.println("");
      ! Serial.print(zeitstempel() + " ");
      ! myMac(); // Mac-Adresse ermitteln und in die globale Variable "MAC_char" schreiben
      ! // Verbindungsaufbau abwarten
      ! while (WiFi.status() != WL_CONNECTED) {
      ! heartbeatIntervall();
      ! //delay(500);
      ! //Serial.print(".");
      ! }
      ! wifiLastStatus = WiFi.status();
      ! // WLAN verbunden, weiter im setup()
      ! // Ausgaben im seriellen Monitor
      ! Serial.println("");
      ! Serial.println(zeitstempel() + " erfolgreich!");
      ! Serial.println("");
      ! Serial.println("Verbunden mit: " WM_IO_WLAN_ssid);
      ! //Serial.println(ssid);
      ! Serial.print("Signalstaerke: ");
      ! int rssi = WiFi.RSSI();
      ! Serial.print(rssi);
      ! Serial.println(" dBm");
      ! Serial.print("IP-Adresse: ");
      ! Serial.print(WiFi.localIP());
      ! Serial.println("");
      ! Serial.print("MAC-Adresse: ");
      ! Serial.println(MAC_char);
      ! Serial.println("");
      ! // HTTP-Anfragen bearbeiten
      ! server.on("/" , homepage);
      ! server.on("/heartbeat", webSetHeartbeat);
      ! // HTTP-Server starten
      ! server.begin();
      ! Serial.println(zeitstempel() + " HTTP-Server gestartet");
      ! // WLAN-/Systeminfos an ioBroker übermitteln (Datenpunkte müssen in ioBroker angelegt sein)
      ! melde_ioBroker(dpNameIoBrokerLastStart, lastStart()); // Hallo ioBroker, hier bin ich. Wemos aktiv und gestartet.
      ! systeminfos(); // uptime und rssi
      ! melde_ioBroker(dpNameIoBrokerSsid , ssid); // ssid
      ! melde_ioBroker(dpNameIoBrokerWemosIp, myIp()); // ip
      ! melde_ioBroker(dpNameIoBrokerWemosMac, MAC_char);
      ! }
      ! // =======================================================================
      ! // loop() - Schleife, die immer wieder durchlaufen wird
      ! // =======================================================================
      ! void loop() {
      ! server.handleClient(); // auf HTTP-Anfragen warten
      ! // kontinuierliche Überprüfung der Messwerte, Ausgabe nur bei Änderung
      ! messung(0); // 0 = Ausgabe der Messwerte nur bei Änderung, 1 = AUsgabe des Messwerts bei jedem Aufruf (1 ist nur im Intervall sinnvoll)
      ! // Intervall 0: Messintervall - Verarbeiten wenn Zeitintervall erreicht
      ! if(intervall(0,deltaMessungSekunden * 1000)) { // alle "deltaMessungSekunden" Sekunden
      ! Serial.print("\nMess-Zeitpunkt : ");
      ! Serial.println(zeitstempel());
      ! //messung(1); // wenn zyklisch zusätzlich immer Werte ausgegeben werden sollen -> 1 = Ausgabe der Messwerte, auch wenn die Werte sich nicht geändert haben
      ! } // Ende Zeitintervall 0
      ! // Intervall 1: Systemmeldungen an ioBroker - Verarbeiten wenn Zeitintervall erreicht
      ! if(intervall(1, deltaSysinfosSekunden * 1000)) {
      ! systeminfos();
      ! }
      ! // Intervall 2: Verarbeiten wenn Zeitintervall erreicht
      ! // Reserve
      ! if(intervall(2, 1 * 1000)) { // jede Sekunde
      ! Serial.print("."); // Reserve - Beispiel
      ! }
      ! // Intervall 3: Heartbeat - Verarbeiten wenn Zeitintervall erreicht
      ! heartbeatIntervall();
      ! // Intervall 4: DHT11 - Verarbeiten wenn Zeitintervall erreicht
      ! if(intervall(4, 30 * 1000)) {
      ! // Serial.print(WiFi.status());
      ! // read with raw sample data.
      ! byte temperature = 0;
      ! byte humidity = 0;
      ! byte data[40] = {0};
      ! if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
      ! Serial.print("Read DHT11 failed");
      ! return;
      ! }
      ! Serial.print("DHT11 Sample RAW Bits: ");
      ! for (int i = 0; i < 40; i++) {
      ! Serial.print((int)data__);
      ! if (i > 0 && ((i + 1) % 4) == 0) {
      ! Serial.print(' ');
      ! }
      ! }
      ! Serial.println("");
      ! Serial.print("DHT11 Sample OK: ");
      ! Serial.print((int)temperature); Serial.print(" *C, ");
      ! Serial.print((int)humidity); Serial.println(" %");
      ! melde_ioBroker(dpNameIoBrokerTemp , (int)temperature);
      ! melde_ioBroker(dpNameIoBrokerHum , (int)humidity));
      ! }
      ! }</wert></wert></wert></wert></wert></wire.h></esp8266webserver.h></esp8266wifi.h></simpledht.h></wert></ip-adresse> __DHT11 Sketch:

      ! #include <simpledht.h>// for DHT11,
      ! // VCC: 5V or 3V
      ! // GND: GND
      ! // DATA: 2
      ! int pinDHT11 = 2;
      ! SimpleDHT11 dht11;
      ! void setup() {
      ! Serial.begin(9600);
      ! }
      ! void loop() {
      ! // start working…
      ! Serial.println("=================================");
      ! Serial.println("Sample DHT11...");
      ! // read with raw sample data.
      ! byte temperature = 0;
      ! byte humidity = 0;
      ! byte data[40] = {0};
      ! if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
      ! Serial.print("Read DHT11 failed");
      ! return;
      ! }
      ! Serial.print("Sample RAW Bits: ");
      ! for (int i = 0; i < 40; i++) {
      ! Serial.print((int)data
      );
      ! if (i > 0 && ((i + 1) % 4) == 0) {
      ! Serial.print(' ');
      ! }
      ! }
      ! Serial.println("");
      ! Serial.print("Sample OK: ");
      ! Serial.print((int)temperature); Serial.print(" *C, ");
      ! Serial.print((int)humidity); Serial.println(" %");
      ! // DHT11 sampling rate is 1HZ.
      ! delay(6000);
      ! }__</simpledht.h>____

      posted in Hardware
      M
      Miragolix
    • RE: LowBatterie abfragen für ein Widget

      Hallo,

      vielen dank für die Antworten.

      Habe es geschafft mit dem Script.

      Vielen Dank.

      posted in Skripten / Logik
      M
      Miragolix
    • LowBatterie abfragen für ein Widget

      Hallo,

      über die Suche habe ich leider keine Antwort gefunden, die mir hilft.

      Ich möchte gerne einen Seite haben, wo mir angezeigt wird ob alle Batterien der Homematic Komponenten leer sind (LowBatterie true oder false). Dies habe ich bereits erstellt.

      Jetzt möchte ich gerne ein Widget erstellen, das auf meiner Main - Seite nur erscheint, wenn eine Batterie leer ist. Da ich momentan 6 Komponenten habe, die mit Batterie betrieben sind, aber diese mehr werden, möchte ich nicht sechs oder mehr Widget erstellen bzw. nur wenn nicht anders möglich.

      Ich denke das lässt sich über einen Script lösen. Leider kann ich dies nicht. Ich kann zwar die HM Komponenten einfügen, aber einen Script komplett erstellen leider nicht.

      Ich denke der Skript sollte alle (noch) sechs LowBatterie Variablen abfragen, und wenn einer mit true dabei ist den Widget aktivieren.

      Hat jemand von euch einen solchen Script, den ich für mich abändern kann??

      Für einen solchen wäre ich sehr dankbar.

      Vielen Dank

      posted in Skripten / Logik
      M
      Miragolix
    • RE: Chromcast Adapter mit versch. Radiosender

      Hi,

      habe es geschafft wieder auf 1.3.0 zu kommen, indem inch gelöscht und neu installiert habe.

      Alles auf Standarteinstellungen. Wenn ich Play starte kommt im Log folgende Meldung:

      host.raspberrypi 2017-06-24 23:28:55.105 error instance system.adapter.chromecast.0 terminated with code 0 (OK)

      chromecast.0 2017-06-24 23:28:55.063 info cleaned everything up…

      chromecast.0 2017-06-24 23:28:55.062 error at TCP._onclose (net.js:490:12)

      chromecast.0 2017-06-24 23:28:55.062 error at Socket.emit (events.js:169:7)

      chromecast.0 2017-06-24 23:28:55.062 error at emitOne (events.js:82:20)

      chromecast.0 2017-06-24 23:28:55.062 error at Socket.socketCloseListener (_http_client.js:245:9)

      chromecast.0 2017-06-24 23:28:55.062 error at ClientRequest.emit (events.js:169:7)

      chromecast.0 2017-06-24 23:28:55.062 error at emitOne (events.js:77:13)

      chromecast.0 2017-06-24 23:28:55.062 error at ClientRequest. (/opt/iobroker/node_modules/iobroker.chromecast/node_modules/castv2-player/lib/mediaInfo.js:71:63)

      chromecast.0 2017-06-24 23:28:55.062 error ReferenceError: _closeIcyConnection is not defined

      chromecast.0 2017-06-24 23:28:55.061 error uncaught exception: _closeIcyConnection is not defined

      chromecast.0 2017-06-24 23:28:55.048 info cleaned everything up...

      chromecast.0 2017-06-24 23:28:55.044 error at process._tickCallback (node.js:425:17)

      chromecast.0 2017-06-24 23:28:55.044 error at nextTickCallbackWith2Args (node.js:511:9)

      chromecast.0 2017-06-24 23:28:55.044 error at emitErrorNT (net.js:1272:8)

      chromecast.0 2017-06-24 23:28:55.044 error at Socket.emit (events.js:169:7)

      chromecast.0 2017-06-24 23:28:55.044 error at emitOne (events.js:77:13)

      chromecast.0 2017-06-24 23:28:55.044 error at Socket.socketErrorListener (_http_client.js:269:9)

      chromecast.0 2017-06-24 23:28:55.044 error at ClientRequest.emit (events.js:169:7)

      chromecast.0 2017-06-24 23:28:55.044 error at emitOne (events.js:77:13)

      chromecast.0 2017-06-24 23:28:55.044 error at ClientRequest. (/opt/iobroker/node_modules/iobroker.chromecast/node_modules/castv2-player/lib/mediaInfo.js:71:63)

      chromecast.0 2017-06-24 23:28:55.044 error ReferenceError: _closeIcyConnection is not defined

      chromecast.0 2017-06-24 23:28:55.039 error uncaught exception: _closeIcyConnection is not defined

      Bei Status -> Playing wenn ich auf true gehe, wird dies rot und nach ca. 10 sec. springt er wieder auf false um.

      Was ist hier falsch??

      Vielen Dank

      posted in ioBroker Allgemein
      M
      Miragolix
    • RE: Chromcast Adapter mit versch. Radiosender

      Hallo,

      vielen Dank. Das mit dem Button habe ich verstanden und auch eingefügt.

      Nun ergibt sich ein neues Problem.

      Die Adresse, die in url2play steht ist immer rot, egal ob m3u, oder mp3. Bei Bestätigt, steht auch immer "false"?!

      Internet ist da. Ich glaube das das Problem erst seit der Aktualisierung auf Version 1.3.2. ist.

      Kann ich wieder zurück auf 1.2.3.?

      Im Log steht folgendes:

      chromecast.0 2017-06-22 07:04:40.131 error ChromecastAudio3540 - Could not stop: TypeError: Cannot read property 'mediaSessionId' of null

      chromecast.0 2017-06-22 07:04:32.810 info ChromecastAudio3540 - Try to play playlist with 1 items

      chromecast.0 2017-06-22 07:04:32.582 info ChromecastAudio3540 - Try to play url - http://sender.eldoradio.de:8000/128.mp3

      chromecast.0 2017-06-22 07:04:11.560 info ChromecastAudio3540 - Try to play playlist with 1 items

      chromecast.0 2017-06-22 07:04:11.299 info ChromecastAudio3540 - Try to play url - http://sender.eldoradio.de:8000/128.mp3

      chromecast.0 2017-06-22 07:03:45.535 info ChromecastAudio3540 - Try to play playlist with 1 items

      chromecast.0 2017-06-22 07:03:45.236 info ChromecastAudio3540 - Try to play url - http://85.214.231.253:8080/stream.mp3

      host.raspberrypi 2017-06-22 07:02:10.076 info instance system.adapter.ical.0 terminated with code 0 (OK)

      Vielen Dank

      Gruß

      posted in ioBroker Allgemein
      M
      Miragolix
    • RE: Chromcast Adapter mit versch. Radiosender

      Hallo Vegetto,

      vielen Dank für die Hilfe.

      Was Du mit einem Button Widget meinst weiß ich, aber was meinst Du mit einem "url2play mit einem hardcoded Value" setzen.

      Kannst Du mit bitte ein Beispiel Widget nennen, das das kann.

      Danke

      posted in ioBroker Allgemein
      M
      Miragolix
    • Chromcast Adapter mit versch. Radiosender

      Hallo,

      meine Frage richtet sich an den Chromecast Adapter. Unter dem Reiter Objekte, unter dem Punkt url2play im Chromecast habe ich bis jetzt bei Funktionen die Adresse vom Radiosender eingesetzt. Funktioniert gut, doch jedes mal beim Senderwechsel musste ich in den Iobroker und die Adresse wieder ändern was sehr umständlich ist.

      Meine Frage ist, kann ich im VIS ca. 10 Sender fest hinterlegen und dann mir Aussuchen, welchen Sender ich hören will.

      Ich brauche also eine Möglichkeit, das Feld url2play aus Vis heraus zu ändern!

      Bitte um Hilfe und wenn ein Script dazu nötig ist, mir bitte diese so genau wie möglich zu geben, da ich leider dies nicht selber kann (noch nicht).

      Meine zweite Frage:

      Wenn ich 2 oder 3 Chromecast habe (je in verschiedenen Räumen) kann ich diese einzeln Ansteuern?

      Vielen Dank und schöne Grüße aus Franken

      posted in ioBroker Allgemein
      M
      Miragolix
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo