Wasserzähler

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Wasserzähler

Beitrag von Boxana »

Du benutzt folgende Syntax:

Code: Alles auswählen

(Bewaesserungsautomatik.state == ON || Regen_Sensor_1.state == ON)
ist dass das gleiche ?

Code: Alles auswählen

(Bewaesserungsautomatik.state == ON) && (Regen_Sensor_1.state == ON)

Wenn ich die Begegnung abhängig vom Sonnenuntergang / Aufgang machen möchte, und ich z.B. 3 Stunden nach Sonnenuntergang starten möchte.

Kann ich das im trigger der regel einbauen in der Art Sonnenuntergang + 3 stunden oder muss ich das global mit dem Offset im Binding definieren.
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Wasserzähler

Beitrag von peter-pan »

Boxana hat geschrieben: 14. Apr 2020 13:25 Du benutzt folgende Syntax:
...nicht ganz. "||" ist ODER, "&&" ist UND. Im ersten Fall muss eine der beiden Bedingungen erfüllt sein. Im zweiten Fall müssen beide zutreffen.

Da es sich um ein "Event" handelt, denke ich, dass du mit einem Offset triggern musst.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Wasserzähler

Beitrag von Boxana »

könnte ich dann auch das schreiben:

Code: Alles auswählen

(Bewaesserungsautomatik.state == ON && Regen_Sensor_1.state == ON)
Ich habe jetzt nr noch eine ().

Dann habe ich so ein beispiel gefunden.

Code: Alles auswählen

Channel 'astro:sun:37f6fe1d:set#event' triggered START
then
createTimer(now.plusMinutes(30))
das würde ja funktionieren. Hat das Nachteile? Ist dann diese rule für 30 Minuten quasi offen?

Und dann habe ich noch gelesen das es einen trigger im Astro Binding gibt der die Nacht als Event nutzt. Wann ist Nacht definiert?

Code: Alles auswählen

Channel 'astro:sun:2e6bba0c:night#event' triggered START
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Wasserzähler

Beitrag von peter-pan »

Die Bedingung sollte so m.E. auch funktionieren.
Was den Timer angeht, bin ich auch kein Spezialist. Aber ich denke die Regel mit dem Timer könnte funktionieren. So wie ich das verstehe, ist die Regel aber nicht mehr offen, da sie ganz normal abgearbeitet wird. Das ist ja der Unterschied zu "sleep".

Astro-Binding:
Heute startet die Nacht um 22:10 Uhr (bei mir ;) ). Das ist aber je nach Wohnort unterschiedlich.

Ich gehe mal davon aus, dass du das Astro-Binding installiert hast und auch zwei Things (sun + moon) angelegt hast. Dann kannst du für dein Offset zusätzlich ein weiteres Thing mit entsprechenden Channels anlegen.

Ein Beispiel:

Code: Alles auswählen

//    Astro - Binding Geo-Position  geolocation="48.887211,9.87612,502"

Thing astro:sun:local     "Sonnen Daten"    [geolocation="41.32145,7.65890,123", interval=300]
Thing astro:moon:local    "Mond Daten"      [geolocation="41.32145,7.65890,123", interval=300]
                                        

Thing astro:sun:plus30   "Offset 30"        [geolocation="41.32145,7.65890,123", interval=300]{
  Channels:
    Type rangeEvent : set#event [
      offset=30
    ]
    Type rangeEvent : noon#event[
      offset=30
    ]
    Type start : set#start [
      offset=30
    ]
    Type end : set#end [
      offset=30
    ]
  }

Ich habe dem Thing der Einfachheit halber den Namen "plus30" gegeben. Es hat zwei Event-Channels (Trigger-Channels) und zwei normale Channels für die Nutzung in Verbindung mit einem Item.

.items

Code: Alles auswählen

DateTime  Sunset_Time  "Sonnenuntergang [%1$ta, %1$td.%1$tm.%1$ty,  %1$tH:%1$tM]" <sunset> (gAstro) {channel="astro:sun:plus30:set#start"}
Vielleicht hilft dir das weiter.Allerdings weiss ich nicht, wie das mit PaperUI geht.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Wasserzähler

Beitrag von udo1toni »

In Paper UI kannst Du den Offset einfach in den entsprechenden Channels eintragen. Wenn Du die Channel zusätzlich noch ohne Offset nutzen möchtest, musst Du auch ein zweites Thing anlegen, wie von @peter-pan per Text-Datei beschrieben, das geht genauso auch über die UI :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Wasserzähler

Beitrag von Boxana »

Darum ging es mir, das ich an einer anderen Stelle schon ein Offset nutze und wenn es nur ein weiteres thing benötigt um das zu umgehen ist das gut.

Könntest du vielleicht noch einmal über deine Script Vorlage schauen?
{
"resource": "/share/MD0_DATA/.qpkg/OpenHab/conf/rules/garten.rules",
"owner": "_generated_diagnostic_collection_name_#0",
"code": "org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types",
"severity": 8,
"message": "Type mismatch: cannot convert from boolean to Number",
"startLineNumber": 18,
"startColumn": 21,
"endLineNumber": 18,
"endColumn": 75
}

Code: Alles auswählen

    nWasseruhrAlt = (Rasen_Zaehlerstand_Wasseruhr.state instanceof Number)  

Code: Alles auswählen

logInfo("sprinkling","Zählerstand bei Start: {} cm³", nWasseruhrAlt ) 
2020-04-14 13:39:57.056 [INFO ] [se.smarthome.model.script.sprinkling] - Zählerstand bei Start: true cm³
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Wasserzähler

Beitrag von Boxana »

Unbenannt.png
den Fehler in der zeile 18 konnte ich beheben glaube ich .
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Wasserzähler

Beitrag von Boxana »

habe es am laufen bis auf diese abfrage.

Code: Alles auswählen

    /*if(!(Rasen_Zaehlerstand_Wasseruhr.state as Number )) {                          // Zählerstand ist keine gültige Zahl
        logWarn("sprinkling","Beregnungsstop - Zählerstand kann nicht abgerufen werden!")  // Warnmeldung
        return;                                                                            // Und Abbruch der Rule
    }*/
was macht der teil? so wie ich es interpretiert soll es überprüfen ob da überhaupt eine zahl abgelegt
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Wasserzähler

Beitrag von udo1toni »

Nein, der Code ist so nicht richtig. Kannst Du bitte Deinen Code nicht als Screenshot posten, sondern als Text (markiert mit Code-Tags und vollständig)? So sieht man nur einen Teil des Codes und kann auch nicht darauf zitieren oder den Code überprüfen lassen (also ohne ihn von Hand abzutippen).

Ich habe in Zeile 13 einen Copy&Paste Fehler drin. Ich habe das oben korrigiert.

if() ist eine Boolean Funktion. Das heißt, der Inhalt der Klammern muss true oder false ergeben.
! ist die Boolean Funktion NOT !true = false, !false = true
instanceof ist eine Funktion, die true oder false liefert, je nachdem, ob der angegebene wert eine Instanz vom angegebenen Typ ist.

Code: Alles auswählen

if(!(Rasen_Zaehlerstand_Wasseruhr.state instanceof Number ))
bedeutet also: Falls der Status des Items Rasen_Zaehlerstand_Wasseruhr nicht vom Typ Number ist.

Du hast aus dem instanceof ein as gemacht. Lustigerweise habe ich in meinem Code an der anderen Stelle aus Versehen instanceof stehen lassen, womit die Zeile

Code: Alles auswählen

    nWasseruhrAlt = (Rasen_Zaehlerstand_Wasseruhr.state instanceof Number)                 // alten Zählerstand retten
also versucht, einer Number Variablen einen Boolean Wert zuzuweisen. In dieser Zeile gehört also ein as statt des instanceof:

Code: Alles auswählen

    nWasseruhrAlt = (Rasen_Zaehlerstand_Wasseruhr.state as Number)                         // alten Zählerstand retten
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Wasserzähler

Beitrag von Boxana »

Sorry das mit dem Screenshot,
wollte nur zeigen welcher wert in dem Item abgelegt ist.
Openhab auf einem Qnap NAS
Gruß
Christian

Antworten