Installation och konfiguration av OpenHAB. Del 6: Sakernas Internet, Home Automation (9 / 13 steg)
Steg 9: Felsökning dina regler
Finns vanligen ett par alternativ du när felsökning OpenHAB (på Raspberry Pi) med OpenHAB Designer (på datorn). Dessa är semantiska och funktionella felsökning.
Semantiska felsökning
Om du välja för att använda OpenHAB Designer, en av fördelarna med programvaran är det hjälper dig pickup semantiska fel genom att markera raden med ett rött "x" (i bild 3 ovan), här programvaran har upptäckt random textfel "ThisIsABlatantMistake" och lyfte fram det.
Programvaran kommer också att hjälpa dig att slutföra din kod genom att erbjuda några potentiella alternativ (som i bild 2 ovan). För att få denna hjälp medan du skriver, enkelt pressa Ctrl-SPACE. En kort stund senare en rullgardinsmeny visas beskriver de möjliga alternativ. Använd upp/ner piltangenterna för att göra ditt val och tryck på enter för att göra ditt val.
Funktionella felsökning
Detta område för debug är lite knepigt. När du har angett all kod för .sitemap, .rules, .persist, transformeringar (kartor, Java skript etc) och .items som är någorlunda rakt fram. Du kan peka webbläsaren Chrome på din hemsida (http://openhab.local:8080/openhab.app?sitemap=stevequinnhousehold), uppdatera den och se frukten av ditt arbete framför dina ögon.
Men vad händer om du arbetar på en regel och du får inget svar eller ett svar i Chome som ingen mening. Om sådan situation uppstår kan du använda loggning för att hjälpa dig att felsöka. Se https://github.com/openhab/wiki/Rules för ytterligare detaljer (generell process skildras i bild 1). Men kort sagt kan du effektivt utföra utskrift förklaring felsökning om du gör följande (bilder 4 och 5 ovan);
Öppna PuTTY, ansluta till servern OpenHAB och ange;
- tail -f /var/log/openhab/openhab.log
- Om du vill växla loggning inom dina regler, redigera filen logback.xml;
- sudo nano /etc/openhab/logback.xml
- Leta upp följande rad;
- {logger name="org.openhab" nivå = "INFO" /}
- Ange här nedanför;
- {logger name="org.openhab.model.script.stevequinnhousehold" nivå = "DEBUG" /}
- Spara ändringarna och avsluta nano ^ X, y, RETUR
- Lägga till följande rad i filen regler, i regel av intresse. dvs den som du felsöker.
- logDebug ("stevequinnhousehold", "Regeln felsöks")
- Spara ändringarna till filen .rule i OpenHAB Designer.
- En kort tid senare tailed loggen kommer att visa de förändringar som läses av OpenHAB servern: ' Uppdatera modell ' stevequinnhousehold''
- När regeln körs koden av intresse visas följande i tailed loggen;
- ÅÅÅÅ-MM-DD HH. S [DEBUG] [del.script.stevequinnhousehold] - regel som felsöks
.
Så med denna metod kan du skriva ut Felsöka dina program tills du fixa eventuella problem. För att hjälpa din förståelse lämnade jag lite felsökning kod i filen stevequinnhousehold.rules, "Sync kontroll" regeln.
.
Tips: Avsluta ett program som körs befalla lina.
Det finns subtila skillnader när du avslutar ett program på en Linux system med ^ C (Ctrl-C) och ^ Z (Ctrl-Z). Beroende på hur du använder dessa kommandon kan du få vad tycker är konstigt beteende.
Ctrl-C: Detta kommando kommer att avsluta och avsluta ett program som körs. Du kan använda det för att sluta från tailed log exemplet ovan.
Ctrl-Z: Detta kommando upphäver ett program och ger dig tillbaka befalla lina. I kraft tidigare anropade programmet fortfarande i minnet men får ingen processortid. Att korrekt avsluta ett program efter att ha använt ^ Z, måste du återaktivera svävande programmet genom att ange fg då ^ C. Om du startar om ett program som avbröts med ^ Z du kan hitta udda beteende ges programmet effektivt är laddad innan du försöker att ladda över toppen.
.
Obs: för ' {"läser mindre än och för"} "Läs större än. Tyvärr remsor Instructables redaktör dessa tecken från texten.