Ankündigung

Einklappen
Keine Ankündigung bisher.

Openhab Installation unter Raspberry Whezzy

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

    #16
    Zitat von kkreuzer Beitrag anzeigen
    Bekanntest Problem unter Linux mit noch keiner Idee, woran es liegen kann
    Kai
    Das ist echt ein down light ,-(. Damit kann ich den Raspberry Pi nicht für meinen Dad einsetzen. Ist zu unzuverlässig.

    Meine Beobachtung. Ich hatte letzte Woche nur ein kleines Set an Bindings im Einsatz (KNX, HTTP, DB4j, RRD) und damit ist das überhaupt nicht aufgetreten.

    Kommentar


      #17
      Bekanntest Problem unter Linux mit noch keiner Idee, woran es liegen kann, siehe https://github.com/openhab/openhab/issues/736.
      Workaround ist ein manueller "touch" auf die Dateien, die nicht richtig geladen wurden...
      Nicht nur unter Linux sondern auch unter OSX, tritt immer mal wieder sporadisch auf. Wenn es denn mal läuft ist es aber zuverlässig.

      Vor ein paar Tagen konnte ich den Fehler zuverlässig reproduzieren wenn die vorherige Regel beim Start eine Exception ausgelöst hat, ledre kommt der Bug aber auch ohne eine solche Exception.

      Kommentar


        #18
        Bin für jeden Vorschlag dankbar, wie das zu fixen wäre.
        Notfalls müsste man im Code das abfangen und ein mehrfaches Retry implementieren - nicht wirklich hübsch

        Kommentar


          #19
          Das sollte kein Vorwurf sein, nur ev. zum Erkenntnisgewinn beitragen. Eine echte Idee habe ich aber leider auch nicht.

          Kommentar


            #20
            Hi, ich meine das auch reproduzieren zu können. Probier ich morgen noch mal aus. Wenn ich starte und während dem hochfahren versuche die Webseite zu laden, dann findet er danach das sitemap file nicht mehr.

            Kommentar


              #21
              Code:
              awk '/ERROR.*No such file/ {print $4}' /var/log/openhab/openhab.log | sort -u | awk '{printf("%s ",$0)} END {print ""}'
              Ist auch recht hilfreich um die files zu finden die OH aktuell nicht parat hat.

              Kommentar


                #22
                Hallo,

                brauche Hilfe von den Bash Scriptern ,-). Bin dabei ein Script zu erstellen, dass per Cron aufgerufen wird, die logdatei parst und die notwendigen touch Befehle absetzt. Ich gabe dazu die logback.xml angepasst, damit auch das Datum vorkommt.

                Code:
                <configuration scan="true">
                
                	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
                		<encoder>
                			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{30}[:%line] - %msg%n%ex{0}</pattern>
                		</encoder>
                	</appender>
                
                	<appender name="FILE" class="ch.qos.logback.core.FileAppender">
                		<file>${openhab.logdir:-logs}/openhab.log</file>
                		<encoder>
                			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{30}[:%line]- %msg%n%ex{5}</pattern>
                		</encoder>
                	</appender>
                
                	<appender name="EVENTFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
                		<file>${openhab.logdir:-logs}/events.log</file>
                		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                			<!-- weekly rollover and archiving -->
                			<fileNamePattern>${openhab.logdir:-logs}/events-%d{yyyy-ww}.log.zip</fileNamePattern>
                			<!-- keep 30 days' worth of history -->
                			<maxHistory>30</maxHistory>
                		</rollingPolicy>
                		<encoder>
                			<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
                		</encoder>
                	</appender>
                
                	<logger name="runtime.busevents" level="INFO" additivity="false">
                		<appender-ref ref="EVENTFILE" />
                		<appender-ref ref="STDOUT" />
                	</logger>
                
                	<logger name="org.openhab" level="INFO"/>
                
                	<!-- this class gives an irrelevant warning at startup -->
                	<logger name="org.atmosphere.cpr.AtmosphereFramework" level="ERROR" />
                
                	<!-- temporary workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=402750 -->
                	<logger name="OSGi" level="OFF" />
                
                	<root level="WARN">
                		<appender-ref ref="FILE" />
                		<appender-ref ref="STDOUT" />
                	</root>
                
                </configuration>
                Soweit bin ich gekommen:
                Code:
                #!/bin/bash
                
                TODAY=$(date +"%F")
                # So gehts:
                FILES="$(awk '/2014-05-03.*ERROR.*No such file/ {print $5}' /var/log/openhab/openhab.log | sort -n | uniq)"
                # So gehts nicht:
                #FILES="$(awk '/$TODAY.*ERROR.*No such file/ {print $5}' /var/log/openhab/openhab.log | sort -n | uniq)"
                
                for i in $FILES
                do
                        echo "Fixing $i"
                        find /etc/openhab/configurations/ -name "$i" -exec touch {} \;
                done
                Problem: Habe das Konzept der Variablen Ersetzung in Bash noch nicht vollends verstanden. Ich möchte die Variable $TODAY in der awk Zeile aufgelöst haben, das $5 in der selben Zeile jedoch nicht.

                Habt ihr Ideen?

                Viele Grüße
                Ralf

                Kommentar


                  #23
                  Variablen on doppelten Anführungszeichen werden aufgelöst, in einfachen nicht. Ev. hilft es, das ganze awk Programm in doppelte Anführungszeichen einzuschließen und die Sonderzeichen wie $ und {} zu escapen.

                  Alternativ kennt awk die Option -v mit der Du interne Variablen setzen kannst, damit kannst Du dann die Bash Variable vor dem eigentlichen "Programmtext" zuweisen.

                  In diesem Fall sollte es aber auch ein simples grep schon tun, da hast Du das Problem nicht, das Argument kann in doppelte Anführungszeichen eingeschlossen werden.

                  Kommentar


                    #24
                    Aus gegebenem Anlass beim Update auf openhab 1.5.1 hab ich mich heute noch mal mit dem "File not Found" Problem beschäftigt und ein Skript geschrieben um das "tauchen" zu automatisieren.

                    Aufbauend auf dem Skript von RaK hab ich einen etwas anderen Ansatz gewählt: Ich durchsuche das Log von hinten bis zum letzten Start von openhab nach den "file not found" exceptions und mache es nicht vom Datum abhängig.

                    Was jetzt noch fehlt ist ein Mechanismus um zu verhindern das das "tauchen" mehrfach passiert, da fehlt mir noch eine Idee. Ich wollte das hier aber trotzdem mal zur Diskussion stellen:

                    Code:
                    #!/bin/bash
                    
                    OPENHAB_LOG="/srv/log/openhab.log"
                    OPENHAB_CFG="/etc/openhab/configurations/"
                    
                    FILES="$(tail -r $OPENHAB_LOG | awk '/openHAB runtime has been started / { exit } { print }' | awk '/.*ERROR.*No such file/ {print $5}')"
                    
                    for i in $FILES
                    do
                            echo "Fixing $i"
                            find $OPENHAB_CFG -name "$i" -exec touch {} \;
                    done

                    Kommentar


                      #25
                      Hallo

                      Ich habe bei mir auf dem Raspberry Pi (Whezzy) installiert und anschliessend OpenHAB hat soweit funktioniert.

                      Nun wollte ich HABmin noch dazu installieren doch das klappt nicht. In der Installationsanleitung wird immer von dem openHAB "main directory" gesprochen, doch wo ist das bei mir?

                      Ich finde unter /etc/openhab zwei Verzeichnisse (configurations und jetty) doch das ist wohl nicht da Installationsverzeichnis von openHAB. Da habe ich schon gelesen das openHAB unter /opt/openhab liegen soll, doch da kann ich bei mir auch nichts finden.

                      Kann mir hier jemand weiter helfen und sagen wo openHAB installiert ist?

                      Vielen herzlichen Dank

                      Gruss

                      Kommentar


                        #26
                        Ich hab es auch achon im Bugtracking geschrieben, wollte es aber auch hier noch einmal erwähnen, da ja wohl einige den Touch Workaround nutzen.

                        Bei der Version 1.6 habe ich jetzt beobachtet, das bei einem touch auf eine der von der "File not found" Exception betroffenen Dateien diese zwar neu eingelesen wurde aber der Fehler kam, dass sie keinen Inhalt hätte. Erst ein zweites touch hat dann zum Erfolg gefüher. Das macht einen automatisierten Woekaround natürlich deutlich schwieriger, was vor allem für "unbeaufsichtigte" Installationen ein Problem werden kann.

                        Insgesamt tritt das Problem bei mir unter 1.6 auch deutlich verstärkt auf, was aber auch an einer etwas anderen Auswahl der Bindings liegen mag

                        Kommentar


                          #27
                          Zitat von Jockel Beitrag anzeigen
                          Insgesamt tritt das Problem bei mir unter 1.6 auch deutlich verstärkt auf, was aber auch an einer etwas anderen Auswahl der Bindings liegen mag
                          Gut zu wissen! Dann bleibe ich wohl lieber bei 1.5.1

                          Gruß,
                          thoern

                          Kommentar


                            #28
                            Hi,

                            ich habe die Idee aufgegriffen und für mich abgeändert.

                            So funktioniert das bei mir (Debian auf QNAP-NAS/arm mit letztem OpenHab build).

                            Werden nicht gelesen Dateien (FileNotFoundException) gefunden, werden diese mit einem touch angestupst. Dann wird das LogFile in ein neues File gesichert und das LogFile openhab.log geleert, so dass die Dateien nicht mehrfach per touch aktualisiert werden.

                            Das Skript wird alle 2 Minuten per cron aufgerufen.

                            Code:
                            #!/bin/bash
                            
                            OPENHAB_LOG="/opt/openhab/logs/openhab.log"
                            OPENHAB_CFG="/opt/openhab/configurations/"
                            
                            files=`/bin/cat $OPENHAB_LOG | /bin/grep "java.io.FileNotFoundException"`
                            
                            
                            if [ "$files" != "" ] ; then
                              echo "$files" | while read line 
                              do 
                                line=${line#*: } #remove exeption with blank
                                line=${line% (*} #remove (* with blank
                                echo "touch $line" 
                                find $OPENHAB_CFG -name "$line" -exec touch {} \;
                              done
                            
                              # Backup openhab.log and clear it
                              echo "Backup - openhab.log"
                              time=$(date +"%Y-%m-%d-%H:%M:%S")
                              OPENHAB_LOG_SAVE="/opt/openhab/logs/openhab.log.$time"
                              cp $OPENHAB_LOG $OPENHAB_LOG_SAVE
                              echo "" > $OPENHAB_LOG
                            fi
                            Gruß
                            Dennis

                            Kommentar


                              #29
                              Gibt es so einen Workarround auch für Windows?

                              Gruß Martin

                              Kommentar


                                #30
                                Hi,

                                Zitat von Jockel Beitrag anzeigen
                                Insgesamt tritt das Problem bei mir unter 1.6 auch deutlich verstärkt auf, was aber auch an einer etwas anderen Auswahl der Bindings liegen mag
                                gilt das auch noch für 1.6.1 (hast Du schon aktualisiert)?

                                Gruß,

                                Thomas E.-E.
                                Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                                Kommentar

                                Lädt...
                                X