Zitates heißt "else" und nicht "els"Hatte mir aber bei diese Zeile
ZitatWasser_Zulauf {if (ReadingsVal("$name","Ventile_Wasserzuleitung","") eq "1") {return "Aktiv"} els {return "Aus"}}komischer weise ein "Aus" gegeben
Zitates ist besser, mit ReadingsNum() zu arbeiten anstatt mit ReadingsVal() wenn man Werte nur auf 0 oder 1 prüfen möchte.hab deinen rat befolgt und verbessert
ZitatVariablennamen wie $name muss man nicht in Anführungszeichen setzenWußte ich nicht habs bis jetzt immer so nachkopiert
ZitatMan sollte für jedes userReading einen Trigger verwenden (nur bei "Pumpe" gibt es einen)Hoffe habs im folgenden besser gemacht
ZitatIst es richtig, bei "Messung_PH_Chlor" auf "Umschaltung_Solar_Ladung_1" zu prüfen? Erscheint mir einigermaßen unlogisch.Stimmt hab ich glatt übersehen
ZitatWas passiert in den Fällen, die in Deinen Abfragen nicht berücksichtigt sind? Zum Beispiel, wenn "Umschaltung_Solar_Ladung_1"==1 und "Umschaltung_Solar_Ladung_2" ==0?Hab ich jetzt berücksichtigt
Zitat"Kritik" muss nicht per se etwas negatives sein.Hat mich angestoßen um es nochmal zu überarbeiten
meine letzte Antwort war nicht als "negativer Kommentar" gedacht, sondern als ernstgemeinter Hinweis, das Ganze nochmal zu prüfen und ggf. zu verbessern.
Pumpe:Pool_Pumpe_.* {return 'Ein' if ReadingsNum($name,'Pool_Pumpe_Ein',0); return '100 %' if ReadingsNum($name,'Pool_Pumpe_100',0); return '80 %' if ReadingsNum($name,'Pool_Pumpe_80',0); return '60 %' if ReadingsNum($name,'Pool_Pumpe_60',0); return 'Aus';}, Schacht_Ventil_Stellung:Pos_Meldung_SchachtVentil_.* {return 'Gartenhaus' if ReadingsNum($name,'Pos_Meldung_SchachtVentil_Gartenhaus',0); return 'Pool' if ReadingsNum($name,'Pos_Meldung_SchachtVentil_Pool',0); return 'Drehung';}, Ventil_Lauf:Umschaltung_.* {return 'PH und Chlor Messung' if (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 0); return 'Solar Ladung' if (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 1); return 'Fehler' if (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 1) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 0) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 0) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 0) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 0) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 1) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 1) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 1) || (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 1) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 1); return 'Stop' if (ReadingsNum($name,'Umschaltung_Wassermessung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Wassermessung_2',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_1',0) == 0) && (ReadingsNum($name,'Umschaltung_Solar_Ladung_2',0) == 0);}, Wasser_Zulauf:Ventile_Wasserzuleitung.* {return 'Aktive' if ReadingsNum($name,'Ventile_Wasserzuleitung',0); return 'Aus';}, Umschaltung {return 'Solar Ladung' if ReadingsNum($name,'Solar_Ladung',0); return 'PH und Chlor Messung' if ReadingsNum($name,'Wasser_Messung',0); return 'Fehler';}
ZitatP.S.: ESP im AP-Modus betreiben, Shelly sollte problemlos darauf eingerichtet werden können.Darauf hoffe ich.
Zitat von: KölnSolar am 10 Mai 2024, 20:24:44War aber vermutlich nur in der Testphase. Das Gateway kommt normalerweise in den RfZ oder APZ. Das ist dann noch "unsichtbarer". Zumindest gehen ohne und/oder LSS bzw. Spannungsversorgung des RfZ keine Zähleranträge bei der Rheinenergie durch. Was die aktuell als iMSys machen, weiß ich (noch) nicht.
Zitat von: Christoph Morrison am 10 Mai 2024, 22:38:49der neue nur noch Zählerstand.Man kann bei meinem beim Messstellenbetreiber eine Pin anfordern, damit bekommt man dann wesentlich mehr Werte. Allerdings haben die derzeit Bearbeitungszeiten für eine Email von 6-12 Wochen.
"imageUrl": [ "::http\\://192.168.229.253\\:8083/fhem/www/image_fhemapp4/sicherheit.png" ]
Zitat3. Ich habe keine Möglichkeit gefunden, PV-Anlagen mit Direkteinspeisung zusätzlich in die Visualisierung aufzunehmen.
/*
* EEPROM Clear
*
* This example code is in the public domain.
*/
#include <EEPROM.h>
void setup() {
// initialize the LED pin as an output.
pinMode(13, OUTPUT);
/***
Iterate through each byte of the EEPROM storage.
Larger AVR processors have larger EEPROM sizes, E.g:
- Arduno Duemilanove: 512b EEPROM storage.
- Arduino Uno: 1kb EEPROM storage.
- Arduino Mega: 4kb EEPROM storage.
Rather than hard-coding the length, you should use the pre-provided length function.
This will make your code portable to all AVR processors.
***/
for (int i = 0 ; i < E2END - 4 ; i++) {
EEPROM.update(i, 0xFF);
}
// turn the LED on when we're done
digitalWrite(13, HIGH);
}
void loop() {
/** Empty loop. **/
}