Hallo zusammen,
ich habe folgendes Problem:
Ich versuche einen Luftdrucksensor auf Basis BMP085 wie im mysensors tutorial Beschrieben in Openhab einzubinden. Ich sehe in der console folgendes:
der sketch sieht wie folgt aus, dieser zeigt das gleiche verhalten wie der original sketch von hier http://www.mysensors.org/build/pressure nur habe ich vieles entfernt um eine bessere Übersicht zu bekommen:
die dazugehörige "demo.rules" sieht so aus (ja der 101er sensor geht ohne Probleme):
der Wert "bueroPress01" ist auch als item definiert.
Wo könnte hier noch der Fehler liegen?
vielen Dank im Voraus
Gruß
ich habe folgendes Problem:
Ich versuche einen Luftdrucksensor auf Basis BMP085 wie im mysensors tutorial Beschrieben in Openhab einzubinden. Ich sehe in der console folgendes:
Code:
Sketch name: Pressure Sensor Sketch version: 1.0 2015-04-26 20:15:23.435 [WARN ] [.model.script.actions.BusEvent] - Item 'null' does not exist. 2015-04-26 20:15:23.544 [INFO ] [runtime.busevents ] - bueroTemp01 state updated to 19.9 Temp item: bueroTemp01 temp: 19.9 2015-04-26 20:15:27.348 [INFO ] [runtime.busevents ] - Arduino state updated to 0;0;3;0;9;read: 102-102-0 s=2,c=1,t=4,pt=7,l=5:1006 102;2;1;0;4;1006
Code:
#include <SPI.h>
#include <MySensor.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#define node_id 102
#define BARO_CHILD 2
#define TEMP_CHILD 1
unsigned long SLEEP_TIME = 60000; // Sleep time between reads (in seconds)
Adafruit_BMP085 bmp = Adafruit_BMP085(); // Digital Pressure Sensor
MySensor gw;
float lastPressure = -1;
float lastTemp = -1;
int minutes;
float pressureSamples[7][6];
int minuteCount = 0;
bool firstRound = true;
float pressureAvg[7];
float dP_dt;
boolean metric;
MyMessage tempMsg(TEMP_CHILD, V_TEMP);
MyMessage pressureMsg(BARO_CHILD, V_PRESSURE);
void setup() {
//gw.begin();
gw.begin(NULL, node_id);
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("Pressure Sensor", "1.0");
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) { }
}
// Register sensors to gw (they will be created as child devices)
gw.present(BARO_CHILD, S_BARO);
gw.present(TEMP_CHILD, S_TEMP);
//metric = gw.getConfig().isMetric;
}
void loop() {
float pressure = bmp.readSealevelPressure(519)/100; // 519 meters above sealevel
float temperature = bmp.readTemperature();
//if (!metric) {
// Convert to fahrenheit
//temperature = temperature * 9.0 / 5.0 + 32.0;
//}
if (temperature != lastTemp) {
gw.send(tempMsg.set(temperature,1));
lastTemp = temperature;
delay (2000);
}
if (pressure != lastPressure) {
gw.send(pressureMsg.set(pressure,0));
lastPressure = pressure;
}
gw.sleep(SLEEP_TIME);
}
Code:
"101;0;" -> "livingHum01",
"livingHum01" -> "101;0;",
"101;1;" -> "livingTemp01",
"livingTemp01" -> "101;1;",
"102;2;" -> "bueroPress01",
"bueroPress01" -> "102;2;",
"102;1;" -> "bueroTemp01",
"bueroTemp01" -> "102;1;"
Wo könnte hier noch der Fehler liegen?
vielen Dank im Voraus
Gruß

