lenschith hat geschrieben: ↑16. Dez 2020 16:21
Bitte steinige mich nicht, aber wie komme ich an Logfiles?
...nieeee. Ich helfe gerne, wenn ich kann.
Wenn du Frontail nicht installiert hast, kannst du in einem Shell-Fenster den "openhab-cli"-Logger mit laufen lassen. Dazu gibst du einfach:
Code: Alles auswählen
[22:07:51] openhabian@openHABPi:~$ openhab-cli showlogs
ein. Oder direkt per tail:
Code: Alles auswählen
tail -f /var/log/openhab2/openhab.log /var/log/openhab2/events.log
Das sieht dann etwa so aus:
Code: Alles auswählen
==> /var/log/openhab2/openhab.log <==
2020-12-16 22:25:32.546 [INFO ] [se.smarthome.model.script.snmpstring] - String - str: Centigrade:45 Fahrenheit:120
2020-12-16 22:25:32.549 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (String str2): 45
2020-12-16 22:25:32.551 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (Number - num): 45.0
==> /var/log/openhab2/events.log <==
2020-12-16 22:25:32.554 [vent.ItemStateChangedEvent] - WdmycloudtemperaturCelsius changed from 49.0 to 45.0
Ein Teil der Daten ist aus "openhab.log" und der andere Teil aus "events.log". Das wird wahrscheinlich auch der Grund sein warum du nur Teile der geloggten Daten siehst da ein Teil in "openhab.log" steht.
testtemp.jpg
Bitte wundere dich nicht, wegen der unterschiedlichen Temperaturen (45.0 bzw. 49.0). Da hab ich zwischen den Screenshots einfach ein bisschen mit den Werten "gespielt".
Aber wenn ich mir jetzt deinen "grep" genauer anschaue, sehe ich, dass "WdmycloudtemperaturCelsius" nicht gefunden wurde!!! Das ist allerdings merkwürdig. Deshalb noch mal eine kleine Ergänzung in der Regel(eine logInfo mehr):
Code: Alles auswählen
rule "snmp String nach number"
when
Item Dummy_4 changed to ON
then
// val snmpString ="Centigrade:49 Fahrenheit:120"
val snmpString ="Centigrade:49 Fahrenheit:120"
val str = snmpString.toString
logInfo("snmpstring","String - str: {}",str)
val str2 = transform("REGEX",".*:(.*) .*",str)
logInfo("snmpstring","Celsius (String str2): {}",str2)
val num = Float::parseFloat(str2)
logInfo("snmpstring","Celsius (Number - num): {}",num)
WdmycloudtemperaturCelsius.postUpdate(num)
logInfo("snmpstring","Celsius (Celsius): {}",WdmycloudtemperaturCelsius)
end
Diese zusätzliche Log-Zeile sollte dann so aussehen:
Code: Alles auswählen
2020-12-16 23:07:05.716 [INFO ] [se.smarthome.model.script.snmpstring] - Celsius (Celsius): WdmycloudtemperaturCelsius (Type=NumberItem, State=49.0, Label=System Temperatur, Category=null)
Bitte beachte auch, dass meine Dateien evtl. in anderen Ordner liegen als bei dir, da ich die "einfache" Installation vom SD-Karten-Image habe.
Vielleicht hilft uns das weiter.