Ankündigung

Einklappen
Keine Ankündigung bisher.

Müllentsorgung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • hannibal29
    antwortet
    Zitat von crax Beitrag anzeigen
    hier die Berechtigungen der trash.sh:

    -rwxr-xr-x 1 pi pi 744 Jan 15 08:24 trash.sh
    Ok, hier könnte das Problem liegen. Die Datei "gehört" dem User "pi" der volle Rechte hat. Alle anderen und damit auch der openhab User haben nur die Berechtigung "4" was heißt nur lesen, aber nicht ausführen. Du kannst nun entweder die Rechte auf "755" ändern mit chmod oder den Besitzer in "openhab" ändern mit chown. Dann sollte es funktionieren.

    MfG
    Sebastian

    Einen Kommentar schreiben:


  • crax
    antwortet
    Hi Sebastian,

    hier die Berechtigungen der trash.sh:

    -rwxr-xr-x 1 pi pi 744 Jan 15 08:24 trash.sh

    items:
    =====

    // Müll
    DateTime NTP_Datum_Uhrzeit "Datum, Uhrzeit" { ntp="Europe/Berlin:de_DE" }

    // Schwarze Tonne
    String Exec_TrashBlack {exec="<[/etc/openhab/configurations/shellscripts/trash.sh black:60000:REGEX((.*?))]"}
    String TrashBlack "Schwarze Tonne [%s]"

    // Gelber Sack
    String Exec_TrashYellow {exec="<[/opt/openhab/shellscripts/trash.sh yellow:60000:REGEX((.*?))]"}
    String TrashYellow "Gelber Sack [%s]"


    Sitemap:
    =======

    Frame label="Müllabfuhr" {
    Text label="Nächste Termine" icon="calendar"{
    Text item=NTP_Datum_Uhrzeit label="Datum [%1$td.%1$tm.%1$tY]" icon="calendar"
    Text item=TrashBlack icon="Trash_Black" valuecolor=["heute"="red","morgen"="orange"]
    Text item=TrashYellow icon="Trash_Yellow" valuecolor=["heute"="red","morgen"="orange"]
    }


    Danke für deine Bemühungen.

    Einen Kommentar schreiben:


  • hannibal29
    antwortet
    Hi crax,

    Zitat von crax Beitrag anzeigen
    Jan 15 18:20:18 raspberrypi openhab[477]: 2016-01-15 18:20:18.622 [INFO ] [runtime.busevents ] - Exec_TrashBlack state updated to
    Jan 15 18:20:55 raspberrypi openhab[477]: 2016-01-15 18:20:55.680 [INFO ] [runtime.busevents ] - Exec_TrashYellow state updated to
    d.h. die Werte werden aus dem Shell-Skript erst gar nicht in Openhab eingelesen, sonst müsste dort stehen z.B.
    Code:
    Exec_TrashYellow state updated to 2016-01-15
    Zitat von crax Beitrag anzeigen
    Beim manuellen ausführen von

    > ./trash.sh yellow = erhalte ich die richtige Ausgabe 2016-01-19
    > ./trash.sh black = 2016-01-16
    heißt wiederum, das Shellskript an sich funktioniert. Daher vermute ich ein Problem in der Item-Definition oder ein Berechtigungsproblem. Der openhab User muss die Berechtigung haben das Shellskript auszuführen. Schau mal nach welche Rechte und Besitzer/Gruppe das Skript hat. Und die Definition der relevanten Items würde helfen.

    Grüße
    Sebastian

    Einen Kommentar schreiben:


  • crax
    antwortet
    Ich habe noch folgende Anpassung vorgenommen:

    import org.openhab.core.library.types.*
    import org.openhab.core.persistence.*
    import org.openhab.model.script.actions.*
    import org.joda.time.*


    rule "Calculate trash dates"
    //aus Exec-Input Anzeige für Mülltermine berechnen


    when
    Time cron "0 0 1 * * ?"
    then
    logDebug("RULES", "Rule 'Calculate trash dates' started")
    var DateTime date_black
    var DateTime date_yellow
    var DateTime date_now
    var String trash_black
    var String trash_yellow

    date_black = parse(""+Exec_TrashBlack.state)
    date_yellow = parse(""+Exec_TrashYellow.state)
    date_now = parse(""+now.getYear+"-"+now.getMonthOfYear+"-"+now.getDayOfMonth)

    if (date_now.equals(date_black)) { trash_black="heute" }
    else if (date_now.equals(date_black.minusDays(1))) { trash_black="morgen" }
    else if (date_now.equals(date_black.minusDays(2))) { trash_black="übermorgen" }
    else { trash_black=date_black.toString("dd.MM.yyyy") }

    if (date_now.equals(date_yellow)) { trash_yellow="heute" }
    else if (date_now.equals(date_yellow.minusDays(1))) { trash_yellow="morgen" }
    else if (date_now.equals(date_yellow.minusDays(2))) { trash_yellow="übermorgen" }
    else { trash_yellow=date_yellow.toString("dd.MM.yyyy") }

    TrashBlack.postUpdate(""+trash_black)
    TrashYellow.postUpdate(""+trash_yellow)
    TrashNext.postUpdate(trash_next)

    Admin_UpdateTrash.postUpdate(OFF)
    logDebug("RULES", "Rule 'Calculate trash dates' completed")
    end

    Jetzt habe ich zumindes die Fehlermelung nicht mehr.
    Allerdings erhalte ich immernoch keine Daten auf der Seite.

    Log:

    Jan 15 18:20:18 raspberrypi openhab[477]: 2016-01-15 18:20:18.622 [INFO ] [runtime.busevents ] - Exec_TrashBlack state updated to
    Jan 15 18:20:55 raspberrypi openhab[477]: 2016-01-15 18:20:55.680 [INFO ] [runtime.busevents ] - Exec_TrashYellow state updated to

    Danke für eure Hilfe.

    Einen Kommentar schreiben:


  • crax
    antwortet
    Hab ich gerade gemacht, leider ohne Erfolg...

    Rule:

    rule "Calculate trash dates"
    //aus Exec-Input Anzeige für Mülltermine berechnen
    when
    Time cron "* * * * * ?"
    then
    logDebug("RULES", "Rule 'Calculate trash dates' started")
    var DateTime date_black
    var DateTime date_yellow
    var DateTime date_now
    var String trash_black
    var String trash_yellow

    date_black = parse(""+Exec_TrashBlack.state)
    date_yellow = parse(""+Exec_TrashYellow.state)
    date_now = parse(""+now.getYear+"-"+now.getMonthOfYear+"-"+now.getDayOfMonth)

    if (date_now.equals(date_black)) { trash_black="heute" }
    else if (date_now.equals(date_black.minusDays(1))) { trash_black="morgen" }
    else if (date_now.equals(date_black.minusDays(2))) { trash_black="übermorgen" }
    else { trash_black=date_black.toString("dd.MM.yyyy") }

    if (date_now.equals(date_yellow)) { trash_yellow="heute" }
    else if (date_now.equals(date_yellow.minusDays(1))) { trash_yellow="morgen" }
    else if (date_now.equals(date_yellow.minusDays(2))) { trash_yellow="übermorgen" }
    else { trash_yellow=date_yellow.toString("dd.MM.yyyy") }

    TrashBlack.postUpdate(""+trash_black)
    TrashYellow.postUpdate(""+trash_yellow)
    TrashNext.postUpdate(trash_next)

    Admin_UpdateTrash.postUpdate(OFF)
    logDebug("RULES", "Rule 'Calculate trash dates' completed")
    end

    ===========

    [ERROR] [.o.m.r.i.engine.ExecuteRuleJob] - Error during the execution of rule Calculate trash dates


    ===========

    Beim manuellen ausführen von

    > ./trash.sh yellow = erhalte ich die richtige Ausgabe 2016-01-19
    > ./trash.sh black = 2016-01-16
    Zuletzt geändert von crax; 15.01.2016, 18:17.

    Einen Kommentar schreiben:


  • NSchnitzler
    antwortet
    Schmeiß mal die or Abfrage raus, damit gab es mal Probleme. Kannst das Skript ja zum testen mal jede minute laufen lassen.

    Einen Kommentar schreiben:


  • crax
    antwortet
    Hallo,
    ich erhalte folgenden Error:

    Jan 15 09:58:54 raspberrypi openhab[477]: 2016-01-15 09:58:54.962 [ERROR] [m.r.internal.engine.RuleEngine] - Error during the execution of startup rule 'Calculate trash dates': Invalid format: ""

    rule.

    rule "Calculate trash dates"
    //aus Exec-Input Anzeige für Mülltermine berechnen
    when
    System started or
    Time cron "0 0 2 * * ?" or
    Item Admin_UpdateTrash changed to ON
    then
    logDebug("RULES", "Rule 'Calculate trash dates' started")
    var DateTime date_black
    var DateTime date_yellow
    var DateTime date_now
    var String trash_black
    var String trash_yellow

    date_black = parse(""+Exec_TrashBlack.state)
    date_yellow = parse(""+Exec_TrashYellow.state)
    date_now = parse(""+now.getYear+"-"+now.getMonthOfYear+"-"+now.getDayOfMonth)

    if (date_now.equals(date_black)) { trash_black="heute" }
    else if (date_now.equals(date_black.minusDays(1))) { trash_black="morgen" }
    else if (date_now.equals(date_black.minusDays(2))) { trash_black="übermorgen" }
    else { trash_black=date_black.toString("dd.MM.yyyy") }

    if (date_now.equals(date_yellow)) { trash_yellow="heute" }
    else if (date_now.equals(date_yellow.minusDays(1))) { trash_yellow="morgen" }
    else if (date_now.equals(date_yellow.minusDays(2))) { trash_yellow="übermorgen" }
    else { trash_yellow=date_yellow.toString("dd.MM.yyyy") }

    TrashBlack.postUpdate(""+trash_black)
    TrashYellow.postUpdate(""+trash_yellow)
    TrashNext.postUpdate(trash_next)

    Admin_UpdateTrash.postUpdate(OFF)
    logDebug("RULES", "Rule 'Calculate trash dates' completed")
    end


    Jemand eine Idee was ich falsch mache?

    Besten Dank

    Einen Kommentar schreiben:


  • NSchnitzler
    antwortet
    Hi, die Benachrichtigung funktioniert nach dem Update auf 1.8 jetzt.
    Wie sieht die Sitemap denn aus, so dass der nächste Termin angezeigt wird?

    Einen Kommentar schreiben:


  • hannibal29
    antwortet
    Aktive Benachrichtung hab ich noch keine. Steht aber auf der TODO Liste.
    Aktuell zeige ich lediglich auf der Startseite der Visu immer den nächsten Abfuhrtermin (egal welche Müllart) an.

    Einen Kommentar schreiben:


  • NSchnitzler
    antwortet
    Guten Abend,
    eine Frage hab ich noch, wie habt ihr die Benachrichtigung, dass morgen Müll kommt, geregelt? Mein Ansatz war so:
    Code:
     [COLOR=#3933FF][FONT=Monaco][SIZE=11px][COLOR=#931a68]rule[/COLOR][COLOR=#000000] [/COLOR]"Notification trash Yellow"[/SIZE][/FONT][/COLOR]
      [COLOR=#4E9072][FONT=Monaco][SIZE=11px]//[U]aus[/U] [U]Exec[/U]-Input [U]Anzeige[/U] [U]für[/U] [U]Mülltermine[/U] [U]berechnen[/U][/SIZE][/FONT][/COLOR]
      [FONT=Monaco][SIZE=11px]    [COLOR=#931a68]when[/COLOR][/SIZE][/FONT]
      [COLOR=#3933FF][FONT=Monaco][SIZE=11px][COLOR=#000000]        [/COLOR][COLOR=#931a68]Time[/COLOR][COLOR=#000000] [/COLOR][COLOR=#931a68]cron[/COLOR][COLOR=#000000] [/COLOR]"0 0 18 * * ?"[/SIZE][/FONT][/COLOR]
      [FONT=Monaco][SIZE=11px]    [COLOR=#931a68]then[/COLOR][/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]     [COLOR=#931a68]var[/COLOR] DateTime date_yellow[/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]        [COLOR=#931a68]var[/COLOR] DateTime date_now[/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]        date_yellow = parse([COLOR=#3933ff]""[/COLOR]+Exec_TrashYellow.state)[/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]        date_now =  parse([COLOR=#3933ff]""[/COLOR]+now.getYear+[COLOR=#3933ff]"-"[/COLOR]+now.getMonthOfYear+[COLOR=#3933ff]"-"[/COLOR]+now.getDayOfMonth)[/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]        [COLOR=#931a68]if[/COLOR] (date_now.equals(date_yellow.minusDays([COLOR=#909090]1[/COLOR]))) [/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]        { [/SIZE][/FONT]
      [COLOR=#3933FF][FONT=Monaco][SIZE=11px][COLOR=#000000]            sendNotification([/COLOR]"EMAIL"[COLOR=#000000],[/COLOR]"[U]gelbe[/U] [U]Tonne[/U]!"[COLOR=#000000])[/COLOR][/SIZE][/FONT][/COLOR]
      [FONT=Monaco][SIZE=11px]            logDebug([COLOR=#3933ff]"[/COLOR][COLOR=#3933ff][U]Müll[/U][/COLOR][COLOR=#3933ff]"[/COLOR], [COLOR=#3933ff]"[/COLOR][COLOR=#3933ff][U]Morgen[/U][/COLOR][COLOR=#3933ff] [/COLOR][COLOR=#3933ff][U]gelb[/U][/COLOR][COLOR=#3933ff]"[/COLOR])[/SIZE][/FONT]
      [FONT=Monaco][SIZE=11px]        }[/SIZE][/FONT]
      [COLOR=#931A68][FONT=Monaco][SIZE=11px]end[/SIZE][/FONT][/COLOR]
    Aber ich habe keine Benachrichtigung bekommen und das Log was auch leer.

    Einen Kommentar schreiben:


  • NSchnitzler
    antwortet
    Guten Abend,

    ich habe das nachgebaut und bei mir funktioniert das super! Erstmal danke schön, für die super Ideen!!!
    Was mir noch gefallen würde, wäre ein Jahreskalender, der aus den Textdateien generiert wird. Da ich kein Java Profi bin, würde ich mich daran probieren, aber ich glaube ich brauche noch eine gute Idee für den richtigen Ansatz. Also wenn einer Eine hat, dann nur raus damit.

    Gruss
    Norbert

    Einen Kommentar schreiben:


  • csamaggi
    antwortet
    Ok Danke ich werde das mal ausprobieren. Was mir eben aufgefallen ist ich habe meine VM Openhab gestartet nun werden die Tage bei der Müllabfuhr in Englisch angezeigt vorher stand es in Deutsch dran habe nichts geändert einfach über Nacht.

    Da ist mir noch eine Frage eingefallen ist es möglich mehr Verschachtelungen einzubauen also wenn ich auf Wetter Online klicke das ich dann eine Auswahl bekomme für verschiedene Orte und wenn ich dann auf den Ort klicke geht er zu den Wetterdaten?

    MFG Maggi
    Zuletzt geändert von csamaggi; 05.01.2016, 17:10.

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Ja, das könnte schon zu Problemen führen. Beispielsweise wird Notepad als Standardeditor immer ein <LF><CR> anhängen, wo Linux nur ein <LF> erwartet (ist erstmal nicht schlimm, nur unübersichtlich). Und vermutlich wird die Datei auch im ANSI-Standard gespeichert, sie sollte aber UTF8-codiert sein, wie das Zielsystem sie erwartet (das kannst Du im Speichern-Dialog auswählen).

    Du kannst auch zu Notepad++ greifen, dafür gibt es eine Erweiterung, die zumindest die Schlüsselworte hübsch einfärbt, außderdem werden die Klammern mitgezählt, es gibt also eine rudimentäre Konsistenzprüfung.

    Oder Du bringst den Designer zum Laufen normalerweise funktioniert der gut, es gibt eigentlich nur 2 Fußangeln, 1. falsche Java-Version (32-Bit vs. 64-Bit) 2. Die UI-Vorschau ist kaputt, vergiss sie also, docke das Browserfenster ab und schließe es, damit wächst der Eingabebereich auch etwas

    Einen Kommentar schreiben:


  • csamaggi
    antwortet
    Nein ich benutze nicht den Designer da der bei mir nicht laufen möchte. Ich lade mir die Datein mit SSH2 Client und bearbeite sie im Windows Editor (nicht Wordpad).

    MFG Maggi

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Also der fixe Teil vom Itemlabel? Das sollte natürlich nicht so sein. Bearbeitest Du die Dateien mit dem Designer? Vielleicht gerät beim übertragen der Datei was durcheinander, um das zu überprüfen, müsstest Du die Datei mal in Putty öffnen.

    Einen Kommentar schreiben:

Lädt...
X