Got a batch of Bluetooth Sensors as well and wanted to connect them,
seems the Miflora MQTT Daemon is not compatible with Openhab 2.5 Embedded Moquette MQTT Broker, i get a
error
Seems unlike e.g. Mosquito Moquette doesnt generate ClientID’s when none is passed, and the Miflora MQTT Daemon is missing the config to set one, haven’t figured out yet how to include that
According to this post by @rlkoshak the internal mosquitto broker is not maintained at the moment and it is therefore suggested to use alternative external broker
@Lionello_Marrelli Thanks for pointing that out, i wasn’t aware of that,
seems all the components i want to utilize are either abandonen, experimental or broken, would be great if something like that would also be indicated in the documentation…
@mas for me it doesnt seem to work, i don’t get any data from the Miflora Daemon into OH, my milight bridge works though without issue.
the pip3 show paho-mqtt
doesnt show anything for me, it runs a couple seconds but doesnt serve a result…
Note, i got all components on the same Raspbian installation running, don’t know if that makes a difference
I tried “teaching” the MQTT Daemon to transmit a clientID, but didnt have any luck yet, never worked with python before…
As an openhab2 newb i have been trying to get the notifications to work for my miflower sensors and i used your posted code. Thanks for that.
I have everything up and running and im reading my sensor data perfect. I see them all on my sitemap.
I am however struggeling with the rule and i cant get the status check to be filled. it keeps giving a No Data message .
Im hoping you can help because im lost. Im not getting any errors except these when i’ve updated my CheckPlantStatusRules.rules:
Validation issues found in configuration model ‘CheckPlantStatus.rules’, using it anyway:
The field Tmp_CheckPlantStatusRules.PlantDataMap refers to the missing type Object
The field Tmp_CheckPlantStatusRules.PlantDataMap refers to the missing type Object
The field Tmp_CheckPlantStatusRules.PlantDataMap refers to the missing type Object
The field Tmp_CheckPlantStatusRules.PlantDataMap refers to the missing type Object.
This is how my items file is build:
//----------------------------------------------------------------------------------------------------------------------------------------------------
//
// MiFlora sensor at Phlebodium- Fern Blue Star C4:7C:8D:67:BA:A6
//
// Required values
// Temperature: 10,0 - 35,0°C
// Conductivity: 350 - 2000µs/cm
// Moisture: 20 - 55%
//
//----------------------------------------------------------------------------------------------------------------------------------------------------
Group FernBlueStar "Fern Blue Star livingroom" <weather_pollen> (PlantThings)
DateTime FernBlueStar_Brightness "Last update time Fern Blue Star [%1$ta %1$tR]" <time> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.timestamp)]"}
Number FernBlueStar_Brightness "Light Intensity Fern Blue Star [%d Lux]" <light> (FernBlueStar, PlantBrightness) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.light)]"}
Number FernBlueStar_Temperature "Temperature Fern Blue Star [%.1f °C]" <temperature> (FernBlueStar, PlantTemperature) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.temperature)]"}
Number FernBlueStar_Conductivity "Soil Fertility Fern Blue Star [%d µS/cm]" <lawnmower> (FernBlueStar, PlantConductivity) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.conductivity)]"}
Number FernBlueStar_Moisture "Soil Moisture Fern Blue Star [%d %%]" <rain> (FernBlueStar, PlantMoisture) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.moisture)]"}
Number FernBlueStar_BatteryLevel "Battery level Fern Blue Star [%d %%]" <battery> (FernBlueStar, BatteryLevel) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.battery)]"}
Switch FernBlueStar_Battery "Battery Fern Blue Star [MAP(battery.map):%s]" <battery> (FernBlueStar, Batteries) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JS(battery2switch.js)]"}
Number FernBlueStar_Status "Fern Blue Star [MAP(plantstatus.map):%s]" <status> (FernBlueStar, PlantStatus)
my groups are made in a separate file called plants.item:
Group Plants "Plants" <vacation> (Context)
Group PlantThings "Plants" <lawnmower> (Plants)
Group PlantMonitoring "Plantdata" <lawnmower> (Plants)
Group PlantMoisture "Soil Moisture" <rain> (PlantMonitoring)
Group PlantConductivity "Soil Fertility" <lawnmower> (PlantMonitoring)
Group PlantTemperature "Temperature" <temperature> (PlantMonitoring)
Group PlantBrightness "Light Intensity" <light> (PlantMonitoring)
Group PlantStatus "Status" <weather_pollen> (PlantMonitoring)
I used your rules file and modified with my naming:
//------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// Constants and variables
//
//------------------------------------------------------------------------------------------------------------------------------------------------------------
// Values are taken from the Miflora app
val Map<String, Double> PlantDataMap = newHashMap (
"FernBlueStar_Moisture_Min" -> 15.0, "FernBlueStar_Moisture_Max" -> 60.0, "FernBlueStar_Conductivity_Min" -> 350.0, "FernBlueStar_Conductivity_Max" -> 2000.0
// "GF_LR_DypsisLutescens_Moisture_Min" -> 15.0, "GF_LR_DypsisLutescens_Moisture_Max" -> 60.0, "GF_LR_DypsisLutescens_Conductivity_Min" -> 350.0, "GF_LR_DypsisLutescens_Conductivity_Max" -> 2000.0,
// "GF_LR_PterisCretica_Moisture_Min" -> 15.0, "GF_LR_PterisCretica_Moisture_Max" -> 60.0, "GF_LR_PterisCretica_Conductivity_Min" -> 350.0, "GF_LR_PterisCretica_Conductivity_Max" -> 1500.0,
// "GF_LR_PhlebodiumAureum_Moisture_Min" -> 15.0, "GF_LR_PhlebodiumAureum_Moisture_Max" -> 60.0, "GF_LR_PhlebodiumAureum_Conductivity_Min" -> 350.0, "GF_LR_PhlebodiumAureum_Conductivity_Max" -> 2000.0,
// "GF_BR_CyperusAlternifolius_Moisture_Min" -> 15.0, "GF_BR_CyperusAlternifolius_Moisture_Max" -> 60.0, "GF_BR_CyperusAlternifolius_Conductivity_Min" -> 350.0, "GF_BR_CyperusAlternifolius_Conductivity_Max" -> 2000.0,
// "GF_BR_CalatheaZebrina_Moisture_Min" -> 15.0, "GF_BR_CalatheaZebrina_Moisture_Max" -> 65.0, "GF_BR_CalatheaZebrina_Conductivity_Min" -> 350.0, "GF_BR_CalatheaZebrina_Conductivity_Max" -> 1000.0
)
//------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// Rule: Check the plant status watering and fertilisation every hour and update the status flag
//
//------------------------------------------------------------------------------------------------------------------------------------------------------------
rule "Check Plant Status"
when
Time cron "0 0 * ? * *" //every Hour
then
PlantThings.members.forEach[ Plant |
var ActualMoisture = PlantMoisture.members.filter[ pm | pm.name == Plant.name+"_Moisture"].head.state as DecimalType
var ActualConductivity = PlantConductivity.members.filter[ pm | pm.name == Plant.name+"_Conductivity"].head.state as DecimalType
var ActualStatus = 0
if (ActualMoisture <= PlantDataMap.get(Plant.name+"_Moisture_Min")) {
ActualStatus = ActualStatus + 1
}
if (ActualMoisture > PlantDataMap.get(Plant.name+"_Moisture_Max")) {
ActualStatus = ActualStatus + 4
}
if (ActualConductivity <= PlantDataMap.get(Plant.name+"_Conductivity_Min")) {
ActualStatus = ActualStatus + 2
}
if (ActualConductivity > PlantDataMap.get(Plant.name+"_Conductivity_Max")) {
ActualStatus = ActualStatus + 8
}
PlantStatus.members.filter[ pm | pm.name == Plant.name+"_Status"].head.postUpdate(ActualStatus)
logInfo("rule.CheckPlantStatus", "Update status of {} to {}", Plant.name, transform("MAP", "plantstatus.map", ActualStatus.toString))
]
end
and the transformation files are there as well (wont post them because they are basically the same and working.
im not sure if the validation issues are the problem but i’m kinda stuck at this point. I was hoping you could help out.
Thanks in advance.
I
Thanks Lionello for taking time too look into this.
Unfortunately i dont think thats it. Tried it though but had no luck with it.
Get the messages that those are never used once i added them to the rules file.
The import 'java.util.HashMap' is never used.
The import 'org.eclipse.smarthome.model.script.ScriptServiceUtil' is never used.
The import 'java.util.ArrayList' is never used.
Great, all help is very welcome. This is wrecking my head.
I eliminated the cron for testing purposes and added a switch to trigger the rule. Gives me a bit more controle
First of all, i added
import java.util.Map to my rules ( this got rid of the errors: The field Tmp_CheckPlantStatusRules.PlantDataMap refers to the missing type Object)
I then added the debugging code as you can see below.
I
rule "Check Plant Status"
when
// Time cron "0 0 * ? * *" //every Hour
Item testswitch changed to ON
then
logInfo("Debugging", "{}", Plants.name.toString)
PlantThings.members.forEach[ Plants |
logInfo("step 1")
var ActualMoisture = PlantMoisture.members.filter[ pm | pm.name == Plants.name+"_Moisture"].head.state as DecimalType
var ActualConductivity = PlantConductivity.members.filter[ pm | pm.name == Plants.name+"_Conductivity"].head.state as DecimalType
var ActualStatus = 0
logInfo("Debugging", "Moisture: {}; Conductivity: {}", ActualMoisture, ActualConductivity)
if (ActualMoisture <= PlantDataMap.get(Plants.name+"_Moisture_Min")) {
ActualStatus = ActualStatus + 1
}
When i have done that i see this in my logviewer:
2020-01-23 11:35:08.986 [INFO ] [pse.smarthome.model.script.Debugging] - Plants
2020-01-23 11:35:08.993 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule ‘Check Plant Status’: index=1, size=1
thats it. nothing else happens. Im beginning to think it is not parsing the plants based on the group Plants since nothing else happen
My plant grouping looks like this. Could that be a problem?
Group Plants "Plants" <vacation> (Context)
Group PlantThings "Plants" <lawnmower> (Plants)
Group PlantMonitoring "Plantdata" <lawnmower> (PlantThings)
Group PlantMoisture "Soil Moisture" <rain> (PlantMonitoring)
Group PlantConductivity "Soil Fertility" <lawnmower> (PlantMonitoring)
Group PlantTemperature "Temperature" <temperature> (PlantMonitoring)
Group PlantBrightness "Light Intensity" <light> (PlantMonitoring)
Group PlantStatus "Status" <weather_pollen> (PlantMonitoring)
HM, not so easy to find the problem. Ti find the problem i would suggest to minimize the rule by commenting out everything that is not needed. Our goal is to make the foreach loop running and then fill it with more code step by step.
Should look like this
rule "Check Plant Status"
when
Item testswitch changed to ON
then
logInfo("Debugging", "Plant status update started")
PlantThings.members.forEach[ Plant |
logInfo("Debugging", "{}", Plant.name.toString)
]
end
Another option is too comment the whole rule and use this snippet as a new one
i made some changes on several spots. first, i added the planthings group to the .items file. This was a hunch because i read somewhere that group hierarchy isn’t implicit. i also added a second plant for testing purposes.
so my items now looks like this:
Group FernBlueStar "Fern Blue Star livingroom" <weather_pollen> (Plants)
DateTime FernBlueStar_Brightness "Last update time Fern Blue Star [%1$ta %1$tR]" <time> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.timestamp)]"}
Number FernBlueStar_Brightness "Light Intensity Fern Blue Star [%d Lux]" <light> (FernBlueStar, PlantBrightness, PlantThings) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.light)]"}
Number FernBlueStar_Temperature "Temperature Fern Blue Star [%.1f °C]" <temperature> (FernBlueStar, PlantTemperature, PlantThings) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.temperature)]"}
Number FernBlueStar_Conductivity "Soil Fertility Fern Blue Star [%d µS/cm]" <lawnmower> (FernBlueStar, PlantConductivity, PlantThings) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.conductivity)]"}
Number FernBlueStar_Moisture "Soil Moisture Fern Blue Star [%d %%]" <rain> (FernBlueStar, PlantMoisture, PlantThings) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.moisture)]"}
Number FernBlueStar_BatteryLevel "Battery level Fern Blue Star [%d %%]" <battery> (FernBlueStar, BatteryLevel, PlantThings) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.battery)]"}
Switch FernBlueStar_Battery "Battery Fern Blue Star [MAP(battery.map):%s]" <battery> (FernBlueStar, Batteries, PlantThings) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JS(battery2switch.js)]"}
Number FernBlueStar_Status "Fern Blue Star [MAP(plantstatus.map):%s]" <status> (FernBlueStar, PlantStatus, PlantThings)
after i have done that i used the follow rule file to test:
rule "Check Plant Status"
when
Item testswitch changed to ON
then
logInfo("Debugging", "Plant status update started")
PlantThings.members.forEach[ Plants |
logInfo("Debugging", "{}", Plants.name.toString)
// var ActualMoisture = PlantMoisture.members.filter[ pm | pm.name == Plants.name+"_Moisture"].head.state as DecimalType
// var ActualConductivity = PlantConductivity.members.filter[ pm | pm.name == Plants.name+"_Conductivity"].head.state as DecimalType
// var ActualStatus = 0
// logInfo("Debugging", "Moisture: {}; Conductivity: {}", ActualMoisture, ActualConductivity)
]
end
Ok, the idea is iterate trough all plants, take the specific data and calculate the status.
Your group and item structure is not correct at the moment. It should be like this
Group PlantThings "Group that contains all plants"
Group PlantStatus "Group that contains all status items"
Group PlantMoisture "Group that contains all moisture items"
Group PlantConductivity "Group that contains all conductivity items"
Group FernBlueStar "Fern Blue Star livingroom" <weather_pollen> (PlantThings)
DateTime FernBlueStar_LastUpdate "Last update time Fern Blue Star [%1$ta %1$tR]" <time> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.timestamp)]"}
Number FernBlueStar_Brightness "Light Intensity Fern Blue Star [%d Lux]" <light> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.light)]"}
Number FernBlueStar_Temperature "Temperature Fern Blue Star [%.1f °C]" <temperature> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.temperature)]"}
Number FernBlueStar_Conductivity "Soil Fertility Fern Blue Star [%d µS/cm]" <lawnmower> (FernBlueStar, PlantConductivity) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.conductivity)]"}
Number FernBlueStar_Moisture "Soil Moisture Fern Blue Star [%d %%]" <rain> (FernBlueStar, PlantMoisture) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.moisture)]"}
Number FernBlueStar_BatteryLevel "Battery level Fern Blue Star [%d %%]" <battery> (FernBlueStar, BatteryLevel) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.battery)]"}
Switch FernBlueStar_Battery "Battery Fern Blue Star [MAP(battery.map):%s]" <battery> (FernBlueStar, Batteries) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JS(battery2switch.js)]"}
Number FernBlueStar_Status "Fern Blue Star [MAP(plantstatus.map):%s]" <status> (FernBlueStar, PlantStatus)
rule "Check Plant Status"
when
Item testswitch changed to ON
then
logInfo("Debugging", "Plant status update started")
PlantThings.members.forEach[ Plant |
logInfo("Debugging", "{}", Plant.name.toString)
]
end
The groupstrcuture is now as follows.
PlantThings contains all Groups the define a Plant like FernBlueStar and FernBlueStar contains all items that belong to that specific plant. The Moisture, status and conductivity group contain all items of the type.
Now our loop is able to iterate trough the plants.
Sorry for not coming back on this earlier but it took some time too test and understand everything that was happening.
What a victory got it working like a charm now after some more step by step debugging. Your group layout pointed me to the right setup.
I think i also know where i went wrong.
1st - This might be a rookie mistake but…i used a group Plants in my group.items file. it seems that this group is not activated when its not called in the same file. dont really understand this but when i declared a group plants in the group file it was never populated eventhough the plant in the separate .items file was assigned to the plants group. The moment i declared the plants group in plants.items file it was populated with, in my case a FernBlueStar.
2nd - its maybe because of your different group setup ( ill have to look tat that later) but i changed the rule line:
PlantThings.members.forEach[ Plants |
To
Plants.members.forEach[ Plants |
The plantthings wasn’t populated with the plantnames which as a result wouldn’t construct a proper, lets call it look up name, for the plant in conjunction with the measure. Result: it wouldn’t return a value .
For other who want to set this up:
my rule now looks like this:
rule "Check Plant Status"
when
Item testswitch changed to ON
//Time cron "0 0/30 * 1/1 * ? *" //every half hour
then
logInfo("Debugging", "Plant status update started")
Plants.members.forEach[ Plants |
logInfo("Debugging 1", "{}", Plants.name)
var nametest = Plants.name+"_Moisture"
var ActualMoisture = PlantMoisture.members.filter[ pm | pm.name == Plants.name+"_Moisture" ].head.state as DecimalType
var ActualConductivity = PlantConductivity.members.filter[ pm | pm.name == Plants.name+"_Conductivity"].head.state as DecimalType
var ActualStatus = 0
logInfo("Debugging 2", "nametest: {}", nametest)
logInfo("Debugging 3", "Moisture: {}", ActualMoisture)
logInfo("Debugging", "Moisture: {}; Conductivity: {}", ActualMoisture, ActualConductivity)
if (ActualMoisture <= PlantDataMap.get(Plants.name+"_Moisture_Min")) {
ActualStatus = ActualStatus + 1
}
if (ActualMoisture > PlantDataMap.get(Plants.name+"_Moisture_Max")) {
ActualStatus = ActualStatus + 4
}
if (ActualConductivity <= PlantDataMap.get(Plants.name+"_Conductivity_Min")) {
ActualStatus = ActualStatus + 2
}
if (ActualConductivity > PlantDataMap.get(Plants.name+"_Conductivity_Max")) {
ActualStatus = ActualStatus + 8
}
PlantStatus.members.filter[ pm | pm.name == Plants.name+"_Status"].head.postUpdate(ActualStatus)
logInfo("rule.CheckPlantStatus", "Update status of {} to {}", Plants.name, transform("MAP", "plantstatus.map", ActualStatus.toString))
]
end
My plants.items now looks like this:
Group Plants
Group FernBlueStar "Fern Blue Star livingroom" <weather_pollen> (Plants)
DateTime FernBlueStar_update "Last update time Fern Blue Star [%1$ta %1$tR]" <time> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.timestamp)]"}
Number FernBlueStar_Brightness "Light Intensity Fern Blue Star [%d Lux]" <light> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.light)]"}
Number FernBlueStar_Temperature "Temperature Fern Blue Star [%.1f °C]" <temperature> (FernBlueStar) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.temperature)]"}
Number FernBlueStar_Conductivity "Soil Fertility Fern Blue Star [%d µS/cm]" <lawnmower> (FernBlueStar, PlantConductivity) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.conductivity)]"}
Number FernBlueStar_Moisture "Soil Moisture Fern Blue Star [%d %%]" <rain> (FernBlueStar, PlantMoisture) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.moisture)]"}
Number FernBlueStar_BatteryLevel "Battery level Fern Blue Star [%d %%]" <battery> (FernBlueStar, BatteryLevel) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JSONPATH($.battery)]"}
Switch FernBlueStar_Battery "Battery Fern Blue Star [MAP(battery.map):%s]" <battery> (FernBlueStar, Batteries) {mqtt="<[mosquitto:miflora/Fern-Blue_Star:state:JS(battery2switch.js)]"}
Number FernBlueStar_Status "Status Fern Blue Star [MAP(plantstatus.map):%s]" <status> (FernBlueStar, PlantStatus)
and i have a separate group.items file that looks like this:
//Group Plants "plants" declared in Plants.items
Group PlantMonitoring "Monitoring"
Group PlantThings "Plants" <lawnmower>
Group PlantMoisture "Soil Moisture" <rain> (PlantThings, PlantMonitoring)
Group PlantConductivity "Soil Fertility" <lawnmower> (PlantThings, PlantMonitoring)
Group PlantTemperature "Temperature" <temperature> (PlantThings, PlantMonitoring)
Group PlantBrightness "Light Intensity" <light> (PlantMonitoring)
Group PlantStatus "Status" <weather_pollen> (PlantMonitoring)
Thomas, I really would like to thank you for helping with this. Its much appreciated. I see that i have still a lot to learn in Openhab but i feel that i’m getting there.
I think ill be able to continue building on this. My goal is to get a WAF solution that, based on this will sent out a notification which plants need attention.
I had the same problem as you, the openHAB items were not populated with the MQTT values. Eventually I switched to the homie standard and everything is working. As a side note, it did take a while before openHAB populated the first items.
Thing mqtt:topic:lepelplant "Lepelplant" (mqtt:broker:MosquittoMqttBroker) @ "Badkamer" {
Channels:
Type number : light "Light Intensity" [ stateTopic="homie/mi_sensors/Lepelplant/light" ]
Type number : battery "Battery Charge" [ stateTopic="homie/mi_sensors/Lepelplant/battery" ]
Type number : temperature "Temperature" [ stateTopic="homie/mi_sensors/Lepelplant/temperature" ]
Type number : conductivity "Soil Fertility" [ stateTopic="homie/mi_sensors/Lepelplant/conductivity" ]
Type number : moisture "Soil Moisture" [ stateTopic="homie/mi_sensors/Lepelplant/moisture" ]
}
I came around and tried getting rid of moquette and switching over to mosquitto, the connection from the daemon to the broker works now… but, there are a ton of other problems awaiting.
So i am currently running on the latest OH Version (i believe 2.51),
i tried utilizing the standard MQTT config in the MMiflora Daemon with the JSONPath transformation as described a lot in this topic.
Doesn’t work, i just don’t get any values out of my items, the most they show is a “NaN” or a Null,
now i tried the textual configuration as is described here, didn’t work.
As i don’t use .Item or .things file configuration anyhow i tried it through PaperUI, same result.
I tried every combination of the Json Path Conversion, tried the System Broker Thing, the Standard MQTT Broker thing, every other combination i could think of, doesn’t work.
I then gave the Homie Standard setting a shot, can’t get it to work either, no matter what i try i get an error: OFFLINE - COMMUNICATION_ERROR java.lang.Exception: Did not receive mandatory topic value:
Apparently Version 3.00 which the binding speaks isn’t compatible with the Daemon.
Last Tryout i did was the HomeAssistant standard in the Daemon, and low an behold all the sudden my inbox automatically gets populated with all the Sensors. Theres only one caviat: The different channels contain the entire payload, and for some reason i can’t apply a Json Path transformation there in PaperUI… EDIT: Correction, i found the JSON in the Channel Link to the Item, now i can display the individual channels with minor correction in PaperUI
For all the people running this solution on here, are you all running on older OH versions so that you dont seem to have any issues? The hassle to get this running is so frustrating.
Btw, apparently my raspi also has an issue keeping the bluetooth connection stable, over night the adapter just crashed, wasn’t able to restart the service and had to restart the entire Pi to get it running,
found some other folks on the web with the same issue, went to the latest firmware, let’s see if that fixed it… EDIT: didn’t fix it, seems after 6-7 hours it just crashes… so not really impressed with the entire solution. too bad i bought 5 of these sensors
Given that my Aqara Sensor runs just fine, i am looking forward to a sensor with display and zigbee, seems there are a couple pushing in the market soon, blitzwolf seeming to be the first ones. Lets hope they’ll be as easy as the aqara ones in setup
I am wondering how you would solve the following challenge: My RasberryPi sits in the basement in a 19’’ rack, but my plant is 2 floors above, no way the bluetooth signal is strong enough, what would you recommend? Setting up a new Pi device just as a Gateway?