NEWS
[gelöst] Aktuelles Datum als Monat größer oder kleiner
-
Guten morgen ihr lieben,
ich habe eine Frage und brauche eure Hilfe.
Seit den letzten Update von ioBroker js-controller: 5.0.12 javascript: 7.1.4
fällt mir auf das ein paar Scripte von mir nicht richtig funktionieren.Ich frage in einen falls Block ab, ob die aktuelle Zeit sprich der Monat zwischen zwei Monaten liegt. Leider funktioniert das nicht mehr.
Das bedeutet das ich trodzdem einen Ausgabe Trigger habe, obwohl die Zeit nicht zischen den zwei Monaten liegt. Anbei ein Blocky, kann das jemad bestätigen oder hat das nie funktioniert und ich liege hier einem Irrtum auf?Herzliche Grüße
Fabio -
@fa-bio das muss eine "und" Verknüpfung sein
-
@djmarc75 sagte in Aktuelles Datum als Monat größer oder kleiner:
das muss eine "und" Verknüpfung sein
Es triggert sowohl mit
und
als auchoder
. -
@djmarc75 leider geht das auch nicht.
-
@djmarc75 jetzt funkioniert es doch . Sehr komisch. Bei und funktioniert es bei oder nicht. Dann ist das so.
Vielen Dank euch.
Grüße
Fabio -
@meister-mopper sagte in Aktuelles Datum als Monat größer oder kleiner:
Es triggert sowohl mit und als auch oder.
schon klar nur ist bei oder in dem Fall größer als 3 alles ab 4 bis 12 und kleiner als 9 alles ab 1 bis 8.
Und grenzt dies ein. -
@djmarc75 ich habe jetzt mal was getestet.
Bei meinen alten Blocklys älter als 1 Jahr und mehr funktioniert nur oder und und nicht.
Bei einem neu angelegtem Blockly funktioniert nur und und nicht oder.
Es wäre schön wenn jemanden von euch das auch mal testen könnte.
Vielen Dank
Fabio -
@fa-bio sagte in [gelöst] Aktuelles Datum als Monat größer oder kleiner:
mal testen könnte
nachstellen kann ich das leider nicht aber Du könntest ja mal von einem "alten" und einem "neuen" Blockly den JS-Code vergleichen ob da Unterschiede bestehen.
-
@djmarc75 gute Idee mach ich mal.
-
@djmarc75 oben das alte unten das neue oben mit oder unten mit und.
val == true && (formatDate(new Date(), 'MM.DD') >= '09.01' || formatDate(new Date(), 'MM.DD') <= '04.01')) { // Badezimmerheizung zu val > 9 && (new Date().getMonth() + 1) > 3 && (new Date().getMonth() + 1) <= 10) { console.log('Fabio');
ich glaube da stimmt was nicht. Unten fehlt Format Date kann es daran liegen?
-
@fa-bio sagte in [gelöst] Aktuelles Datum als Monat größer oder kleiner:
da stimmt was nicht
mach nochmal nen Screenshot vom neuen bitte.
-
@djmarc75
wie gesagt hier geht und aber oder nicht.
und hier genau anders rum
-
@fa-bio sagte in [gelöst] Aktuelles Datum als Monat größer oder kleiner:
@djmarc75
wie gesagt hier geht und aber oder nicht.
und hier genau anders rum
die Reihenfolge ist anders
beim zweiten ist der größere unter dem kleinerenund/oder die Vergleichsoperatoren sind umgekehrt
>3 <11 ist innerhalb des Jahres
der zweite Fall ist jahresübergreifend, bzw überlappt sich nicht in einem Jahr
-
@fa-bio Was ist genau möchtest Du denn jetzt prüfen
- größer 3 UND kleiner 11 trifft für
4, 5, 6, 7, 8, 9, 10
- größer 9 ODER kleiner 4 trifft für
10, 11, 12, 1, 2, 3
Bei dem einen prüft man die Werte die dazwischen liegen und bei dem anderen die Werte die außerhalb der Grenzen liegen. Lies das mal laut vor, dann wird es klarer.
- größer 3 UND kleiner 11 trifft für
-
@haus-automatisierung ich möchte das das Skript so ausgeführt wird wie hier.
val == true && (formatDate(new Date(), 'MM.DD') >= '09.01' || formatDate(new Date(), 'MM.DD') <= '04.01')) {
// Badezimmerheizung zumich wundert das es mit oder funktioniert in meinen alten Skripten aber nicht wenn ich ein neues erstelle da geht es nur mit und.
-
@fa-bio sagte in [gelöst] Aktuelles Datum als Monat größer oder kleiner:
val == true && (formatDate(new Date(), 'MM.DD') >= '09.01' || formatDate(new Date(), 'MM.DD') <= '04.01')) {
Ich bin jetzt kein Fan von
>=
auf Strings. Da kommt es stark auf die Reihenfolge der Parameter an. Daher ist die Version mit dem numerischen Monat besser.Also machst Du
größer gleich
Monat als Nummer9
ODERkleiner gleich
Monat als Nummer4
@fa-bio sagte in [gelöst] Aktuelles Datum als Monat größer oder kleiner:
mich wundert das es mit oder funktioniert in meinen alten Skripten aber nicht wenn ich ein neues erstelle da geht es nur mit und.
Du hast die Parameter umgedreht in deinem Beispiel. Das wurde jetzt aber schon 3x hier geschrieben
-
@haus-automatisierung ich mache es ja mit einem Blokly.
-
@fa-bio Ja, da kann man das doch genauso einstellen...
Das trifft dann für
9, 10, 11, 12
(erster Fall) ODER1, 2, 3, 4
(zweiter Fall)Du hast es aber im Ausgangspost so umgesetzt:
Das trifft dann für
4, 5, 6, 7, 8, 9, 10, 11, 12
(erster Fall) ODER1, 2, 3, 4, 5, 6, 7, 8
(zweiter Fall)
Daher kann man sich die Prüfung auch sparen, weil ja alle Monate gültig sind. -
@haus-automatisierung okay ich setzte das mal so um ich glaube ich sehe vor lauter Bäumen den Wald nicht mehr.
-
@fa-bio Detaillierter kann ich Dir die Antwort nicht liefern.... sorry