openhab: config perms shared between docker / host

This commit is contained in:
theBigBlase 2023-12-17 13:37:42 -05:00
parent a24a3e1694
commit e880a09ba8
24 changed files with 283 additions and 469 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
openhab/openhab_userdata/cache openhab/openhab_userdata/cache
openhab/openhab_userdata/logs openhab/openhab_userdata/logs
openhab/openhab_userdata/tmp openhab/openhab_userdata/tmp
NOTES.md

View file

@ -1,7 +1,12 @@
.PHONY: all test clean build .PHONY: all test clean build
ID := $(shell id -u)
GID := $(shell id -g) GID := $(shell id -g)
ID := $(shell id -u)
all: up:
ID=$(ID) GID=$(GID) docker compose up -d ID=$(ID) GID=$(GID) docker compose up -d --build
down:
docker compose down
init:
docker network create ift713 --subnet "172.69.0.0/16" --gateway="172.69.1.0"

View file

@ -4,7 +4,9 @@ This is the folder for the "main" server, doing all the processing and gathering
data. data.
It hosts an openhab instance and mqtt (rumqtt) courier. It hosts an openhab instance and mqtt (rumqtt) courier.
To launch it, just `make` in the root, it'll set docker w/ the correct To init the docker network, `make init` in the root
To launch it, just `make` in the root, it'll run docker compose w/ the correct
permissions. permissions.
## TODO ## TODO

View file

@ -4,20 +4,33 @@ services:
ports: ports:
- 1883:1883 - 1883:1883
- 1884:1884 - 1884:1884
volumes:
- "./mqtt/rumqttd.toml:/rumqttd.toml"
entrypoint: rumqttd -c /rumqttd.toml
networks:
ift713:
ipv4_address: 172.69.1.2
openhab: openhab:
image: "openhab/openhab:4.0.3" build:
dockerfile: openhab/Dockerfile
restart: always restart: always
network_mode: host
user: "${UID}:${GID}"
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "./openhab/openhab_addons:/openhab/addons"
- "./openhab/openhab_conf:/openhab/conf"
- "./openhab/openhab_userdata:/openhab/userdata"
environment: environment:
CRYPTO_POLICY: "unlimited" CRYPTO_POLICY: "unlimited"
EXTRA_JAVA_OPTS: "-Duser.timezone=Canada/Eastern" EXTRA_JAVA_OPTS: "-Duser.timezone=Canada/Eastern"
OPENHAB_HTTP_PORT: "8080" OPENHAB_HTTP_PORT: "8080"
OPENHAB_HTTPS_PORT: "8043" OPENHAB_HTTPS_PORT: "8043"
USER_ID: ${ID}
network_mode: host
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "./openhab/openhab_addons:/openhab/addons"
- "./openhab/openhab_conf:/openhab/conf"
- "./openhab/openhab_userdata:/openhab/userdata"
networks:
ift713:
external: true

6
openhab/Dockerfile Normal file
View file

@ -0,0 +1,6 @@
FROM openhab/openhab:4.0.4
ARG ID=1000
RUN echo $ID
RUN chown $ID -R /openhab/conf

View file

@ -1,38 +0,0 @@
Group Room
Group SmartClothes
Group Sensors
Group:Number:AVG Luminance "average luminosity" (Sensors)
Group:Number:AVG Noise "average noise" (Sensors)
Group Actuators
Group Lights (Actuators)
Group Batteries
Contact room1 "room 1"
// Room fixed devices
Number rfidReader "RFID reader" (Sensors, Room) {channel="rfidReader:device:reader1"}
// smart clothes, mobile devices
Color stripColor "el-wire" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip1"}
Dimmer stripIntensity "el-wire" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip1"}
Color stripColor2 "el-wire" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip2"}
Dimmer stripIntensity2 "el-wire" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip2"}
Switch vibrationPatch "vibration patch" (Actuators, SmartClothes) {channel="vibrationPatch:device:vibration"}
Number luminance "luminance level" (Luminance, Sensors, SmartClothes) {channel=zwave:device:luxmeter:node2:sensor_luminance"}
Number luxmeterBattery "luxmeter battery level" <battery> (Batteries, SmartClothes) {channel="zwave:device:luxmeter:node2:battery-level"}
Number noise "noise level" (Noise, Sensors, SmartClothes) {channel="Channel=“zwave:device:noisemeter:node3:sensor_noise”"}
Number noiseSensorBattery "noise sensor battery level" <battery> (Batteries, SmartClothes) {channel="zwave:device:noisemeter:node3:battery-level"}
// optionnel
Number luminanceWristBand "luminance level" (Sensors, SmartClothes) {channel="zwave:device:wristband:node4:luminance"}
Number noiseWristBand "noise level" (Sensors, SmartClothes) {channel="zwave:device:wristband:node4:luminance"}
Contact gsrWristBand "galvanic skin response level" (Sensors, SmartClothes) {channel=“zwave:device:wristband:node4:galvanicSkinResponse"}
Switch vibrationWristBand "noise level" (Actuators, SmartClothes) {channel="zwave:device:wristband:node4:vibration"}

View file

@ -1,175 +0,0 @@
import org.eclipse.smarthome.model.script.ScriptServiceUtil
// import org.eclipse.smarthome.core.library.items.StringItem
import java.util.HashMap
import java.util.HashSet
val TAG_FileName = "IFT605SmartClothes.rules"
val smartClothesID = "12345678"
var Contact currentRoom
var MQTTBroker currentMQTTBroker
// managing context
var boolean goodConditions = true // of course, only one of good/bad conditions is required
var boolean badConditions = false
var badConditionsStartTime = 0 // in milliseconds
val URGE_TO_CHANGE_ROOM_TIME_TRIGGER = 300000 // 5 minutes
// managing people in the room
var people = new HashSet<String>()
var luminanceMeasures = new HashMap<String, Integer>()
var noiseMeasures = new HashMap<String, Integer>()
// j'entre dans une pièce
val iEnter = [ ContactItem room, String smartClothesID, MQTTBroker broker |
broker.sendCommand(CONNECT);
broker.sendCommand(SUBSCRIBE, "room/1/#");
broker.sendCommand(SUBSCRIBE, "smartclothes/#");
broker.sendCommand(SUBSCRIBE, "room/1/tag/+");
broker.sendCommand(SUBSCRIBE, "smartclothes/+/sensor/luminance");
broker.sendCommand(SUBSCRIBE, "smartclothes/+/sensor/noise");
// informer que l'on vient d'entrer dans la pièce
broker.sendCommand(PUBLISH, smartClothesID+"/status", "Online")
vibrationPatch.sendCommand(OFF)
]
// je sors de une pièce
val iQuit = [ ContactItem room, String smartClothesID, MQTTBroker broker |
broker.sendCommand(UNSUBSCRIBE, "room/1/#");
broker.sendCommand(UNSUBSCRIBE, "smartclothes/#");
broker.sendCommand(UNSUBSCRIBE, "room/1/tag/+");
broker.sendCommand(UNSUBSCRIBE, "smartclothes/+/sensor/luminance");
broker.sendCommand(UNSUBSCRIBE, "smartclothes/+/sensor/noise");
// informer que l'on vient d'entrer dans la pièce
broker.sendCommand(PUBLISH, smartClothesID+"/status", "Offline")
]
// le vêtement entre dans une pièce
val someoneEnterInRoom = [ String smartClothesID |
people.add(smartClothesID)
]
val someoneQuitRoom = [ String smartClothesID |
people.remove(smartClothesID)
noiseMeasures.remove(smartClothesID)
luminanceMeasures.remove(smartClothesID)
]
// fonctions utilitaires pour la gestion du contexte
// autre solutions pour calculer les moyennes, utiliser les HashMap luminanceMeasures et noiseMeasures
val Integer averageLuminance = [ | Luminance.state
]
val Integer averagenoise = [ | Noise.state
]
val boolean checkGoodConditions = [ Integer roomLuminance, Integer roomNoise |
return (LUMINOSITE_MIN < roomLuminance || roomLuminance < LUMINOSITE_MAX)
&& (NIVEAU_SONORE_MIN < roomNoise || roomNoise < NIVEAU_SONORE_MAX)
]
val reactToNewConditions = [ |
goodConditions = checkGoodConditions(averageLuminance(), averageNoise())
badConditions = !goodConditions
if (goodConditions) {
badConditionsStartTime = 0
vibrationPatch.sendCommand(OFF)
// rapprocher l'éclairage de la valeur optimale
if (Luminance.state < LUMOINOSITE_OPTIMALE) {
stripIntensity.sendCommand(INCREASE)
} else {
stripIntensity.sendCommand(DECREASE)
}
} else {
// Éviter de rester trop longtemps dans des conditions défavorables
vibrationPatch.sendCommand(ON)
if (badConditionsStartTime == 0){
badConditionsStartTime = now.getMillis();
}
if (now.getMillis() - badConditionsStartTime > URGE_TO_CHANGE_ROOM_TIME_TRIGGER) {
vibrationPatch.sendCommand(ON)
}
}
]
rule "Démarrage de openHAB"
when
System started
then
logInfo(TAG_FileName, "Rule : Démarrage de openHAB")
currentRoom = room1
currentMQTTBroker = room1MQTT
iEnter(currentRoom, smartClothesID, currentMQTTBroker)
end
// Diffuser les mesures de ses capteurs aux autres vêtements intelligents
rule "lecture d'une mesure de luminosité par le capteur du vêtement"
when
// Item luminance received update
Member of Luminance received update
then
var sensorName = triggeringItem.name
var value = triggeringItem.state
currentMQTTBroker.sendCommand(PUBLISH, "smartclothes/"+smartClothesID+"/sensor/luminance", value)
end
rule "lecture d'une mesure de bruit par le capteur du vêtement"
when
// Item noise received update
Member of Noise received update
then
var sensorName = triggeringItem.name
var value = triggeringItem.state
currentMQTTBroker.sendCommand(PUBLISH, "smartclothes/"+smartClothesID+"/sensor/noise", value)
end
// Gérer son contexte ambiant
rule "nouvelle mesure de bruit publiée par le courtier MQTT"
when currentMQTTBroker "smartclothes/+/sensor/noise" changed
then
noiseMeasures.put(extractID(triggeringItem.newState.topic), trigerringItem.newState.value)
reactToNewConditions()
end
rule "nouvelle mesure de bruit publiée par le courtier MQTT"
when currentMQTTBroker "smartclothes/+/sensor/luminance" changed
then
luminanceMeasures.put(extractID(triggeringItem.newState.topic), trigerringItem.newState.value)
reactToNewConditions()
end
// Tenir compte des arrivées et départs de personnes dans la salle
rule "arrivée d'une personne"
when
// si on n'utilise pas le mécanisme des dernières volontés de MQTT,
// il faut surveiller les éléments pertinents à la main
// currentMQTTBroker "room/+/tag" changed //lecture d'un tag RFID
// or currentMQTTBroker "smartclothes/+/sensor/luminance" changed // member of Luminance changed
// or currentMQTTBroker "smartclothes/+/sensor/noise" changed
currentMQTTBroker "+/status " changed to "Online" //lecture d'un tag RFID
then
String triggeringSmartClothesID = extractID(triggeringItem.newState.topic)
someoneEnterInRoom(triggeringSmartClothesID)
end
// Tenir compte des arrivées et départs de personnes dans la salle
rule "départ d'une personne"
when
currentMQTTBroker "+/status " changed to "Offline" //lecture d'un tag RFID
then
String triggeringSmartClothesID = extractID(triggeringItem.newState.topic)
someoneQuitRoom(triggeringSmartClothesID)
end
rule "Arrêt de openHAB"
when
System shuts down
then
logInfo(TAG_FileName, " Rule : Arrêt de openHAB")
// sauvegarder les états des items et le contexte
iQuit(currentRoom, smartClothesID, currentMQTTBroker)
end

View file

@ -1,62 +0,0 @@
/**
Vêtement intelligent
**/
Bridge elwire:bridge:ewbridge [ ipAddress="192.168.3.123" ] {
// gateway el-wire
Thing 0210 strip1 [stripId="1"] //référer par elwire:0210:ewbridge:strip1
Thing 0220 strip2 [stripId="2"] // référer par elwire:0220:ewbridge:strip2
}
//vibration patch
Thing vibrationPatch:device:vibration "vibration patch" @ "smart clothes"
// voir description à https://www.openhab.org/addons/bindings/zwave/doc/things.html
Bridge zwave:serial_zstick:8c582004 "ZWave Controller" [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", heal_enable="true", security_networkkey="???" ] {
// ampèremètres placés sur les interrupteurs du plafonnier
Thing luxMeter node2 "luxmeter " @ "smart clothes" [ node_id=2 ] {
Channels:
// sensors
Type number : luminance [ updateInterval=10 ]
Type number : battery-level [ updateInterval=10 ]
}
Thing noiseMeter node3 "noise meter" @ "smart clothes" [ node_id=3 ]
Channels:
// sensors
Type number : noise [ updateInterval=10 ]
Type number : battery-level [ updateInterval=10 ]
Thing wristband node4 "wristBand" @ "smart clothes" [ node_id=4 ] {
Channels:
// sensors
Type number : luminance [ updateInterval=10 ]
Type number : noise [ updateInterval=10 ]
Type string : accelerometer [ updateInterval=10 ]
Type number : speed [ updateInterval=10 ]
Type number : galvanicSkinResponse [ updateInterval=10 ]
// effectors
Type switch : vibration
Type switch : enable
}
}
/**
Pièce
**/
// https://www.smarthomeblog.net/mqtt-openhab/
// https://gist.github.com/davidgraeff/6c00d2ad5e4bc553f5f209118307d8fd
// https://community.openhab.org/t/solved-oh-2-4-mqtt-binding-generic-thing-statetopic-working-commandtopic-not-working/63619
Bridge mqtt:systemBroker:embedded-mqtt-broker [ host="127.0.0.1", secure=false ]
{
Thing mqtt:topic:room1MQTT {
Channels:
Type string : room1 "all MQTT room events" @ "room 1"[ stateTopic="room/1/#" ]
Type string : smartclothes "all MQTT smart clothes events" @ "room 1"[ stateTopic="smartclothes/#" ]
Type switch : tag "RFID MQTT event" @ "room 1" [ stateTopic="room/+/tag"]
Type string : noise "noise MQTT event" @ "room 1" [ stateTopic="smartclothes/+/sensor/noise" ]
Type string : luminance "luminosity MQTT event" @ "room 1" [ stateTopic="smartclothes/+/sensor/luminance" ]
}
}
Thing rfidReader:device:reader1 "rfidReader " @ "room 1"

View file

@ -3,7 +3,7 @@ autoRefresh="true"
configCfgStore="false" configCfgStore="false"
featuresBoot="instance/4.4.3,\ package/4.4.3,\ log/4.4.3,\ ssh/4.4.3,\ framework/4.4.3,\ system/4.4.3,\ eventadmin/4.4.3,\ feature/4.4.3,\ shell/4.4.3,\ service/4.4.3,\ jaas/4.4.3,\ openhab-runtime-base,\ openhab-runtime-ui,\ deployer/4.4.3,\ diagnostic/4.4.3,\ bundle/4.4.3,\ config/4.4.3,\ kar/4.4.3" featuresBoot="instance/4.4.3,\ package/4.4.3,\ log/4.4.3,\ ssh/4.4.3,\ framework/4.4.3,\ system/4.4.3,\ eventadmin/4.4.3,\ feature/4.4.3,\ shell/4.4.3,\ service/4.4.3,\ jaas/4.4.3,\ openhab-runtime-base,\ openhab-runtime-ui,\ deployer/4.4.3,\ diagnostic/4.4.3,\ bundle/4.4.3,\ config/4.4.3,\ kar/4.4.3"
featuresBootAsynchronous="false" featuresBootAsynchronous="false"
featuresRepositories="mvn:org.openhab.distro/distro/4.0.3/xml/features,\ mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features,\ mvn:org.apache.karaf.features/framework/4.4.3/xml/features,\ mvn:org.apache.karaf.features/standard/4.4.3/xml/features" featuresRepositories="mvn:org.openhab.distro/distro/4.0.4/xml/features,\ mvn:org.openhab.distro/openhab-addons/4.0.4/xml/features,\ mvn:org.apache.karaf.features/framework/4.4.3/xml/features,\ mvn:org.apache.karaf.features/standard/4.4.3/xml/features"
felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.features.cfg" felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.features.cfg"
service.bundleLocation="?" service.bundleLocation="?"
service.pid="org.apache.karaf.features" service.pid="org.apache.karaf.features"

View file

@ -1,3 +1,6 @@
:org.apache.felix.configadmin.revision:=L"1" :org.apache.felix.configadmin.revision:=L"4"
_felix_.cm.newConfiguration=B"true" automation="jsscripting"
binding="mqtt"
persistence="rrd4j"
service.pid="org.openhab.addons" service.pid="org.openhab.addons"
ui="basic"

View file

@ -3,4 +3,4 @@ name="configWatcher"
path="/openhab/conf" path="/openhab/conf"
service.bundleLocation="?" service.bundleLocation="?"
service.factoryPid="org.openhab.core.service.WatchService" service.factoryPid="org.openhab.core.service.WatchService"
service.pid="org.openhab.core.service.WatchService.4c0ca031-fc00-41d8-8c46-4474cc442330" service.pid="org.openhab.core.service.WatchService.06daff3c-f0c3-4776-a340-a6b0173ed9a1"

View file

@ -0,0 +1,6 @@
:org.apache.felix.configadmin.revision:=L"2"
language="en"
location="45.378331973407505,-71.92963600158693"
region="US"
service.pid="org.openhab.i18n"
timezone="America/Toronto"

View file

@ -1 +1,2 @@
org.openhab.addons="mvn:org.openhab.core.bundles/org.openhab.core.karaf/4.0.3" org.apache.karaf.http="mvn:org.apache.karaf.http/org.apache.karaf.http.core/4.4.3"
org.openhab.addons="mvn:org.openhab.core.bundles/org.openhab.core.karaf/4.0.4"

View file

@ -5,8 +5,8 @@ feature.bundle="bundle"
feature.config="config" feature.config="config"
feature.deployer="deployer" feature.deployer="deployer"
feature.diagnostic="diagnostic" feature.diagnostic="diagnostic"
feature.distro-kar/4.0.3="distro-kar/4.0.3" feature.distro-kar/4.0.4="distro-kar/4.0.4"
feature.distro/4.0.3="distro/4.0.3" feature.distro/4.0.4="distro/4.0.4"
feature.eventadmin="eventadmin" feature.eventadmin="eventadmin"
feature.feature="feature" feature.feature="feature"
feature.framework="framework" feature.framework="framework"
@ -14,87 +14,87 @@ feature.instance="instance"
feature.jaas="jaas" feature.jaas="jaas"
feature.kar="kar" feature.kar="kar"
feature.log="log" feature.log="log"
feature.openhab-core-addon-marketplace/4.0.3="openhab-core-addon-marketplace/4.0.3" feature.openhab-core-addon-marketplace/4.0.4="openhab-core-addon-marketplace/4.0.4"
feature.openhab-core-auth-jaas/4.0.3="openhab-core-auth-jaas/4.0.3" feature.openhab-core-auth-jaas/4.0.4="openhab-core-auth-jaas/4.0.4"
feature.openhab-core-auth-oauth2client/4.0.3="openhab-core-auth-oauth2client/4.0.3" feature.openhab-core-auth-oauth2client/4.0.4="openhab-core-auth-oauth2client/4.0.4"
feature.openhab-core-automation-module-media/4.0.3="openhab-core-automation-module-media/4.0.3" feature.openhab-core-automation-module-media/4.0.4="openhab-core-automation-module-media/4.0.4"
feature.openhab-core-automation-module-script-rulesupport/4.0.3="openhab-core-automation-module-script-rulesupport/4.0.3" feature.openhab-core-automation-module-script-rulesupport/4.0.4="openhab-core-automation-module-script-rulesupport/4.0.4"
feature.openhab-core-automation-module-script/4.0.3="openhab-core-automation-module-script/4.0.3" feature.openhab-core-automation-module-script/4.0.4="openhab-core-automation-module-script/4.0.4"
feature.openhab-core-automation-rest/4.0.3="openhab-core-automation-rest/4.0.3" feature.openhab-core-automation-rest/4.0.4="openhab-core-automation-rest/4.0.4"
feature.openhab-core-base/4.0.3="openhab-core-base/4.0.3" feature.openhab-core-base/4.0.4="openhab-core-base/4.0.4"
feature.openhab-core-io-bin2json/4.0.3="openhab-core-io-bin2json/4.0.3" feature.openhab-core-io-bin2json/4.0.4="openhab-core-io-bin2json/4.0.4"
feature.openhab-core-io-console-karaf/4.0.3="openhab-core-io-console-karaf/4.0.3" feature.openhab-core-io-console-karaf/4.0.4="openhab-core-io-console-karaf/4.0.4"
feature.openhab-core-io-http-auth/4.0.3="openhab-core-io-http-auth/4.0.3" feature.openhab-core-io-http-auth/4.0.4="openhab-core-io-http-auth/4.0.4"
feature.openhab-core-io-rest-audio/4.0.3="openhab-core-io-rest-audio/4.0.3" feature.openhab-core-io-rest-audio/4.0.4="openhab-core-io-rest-audio/4.0.4"
feature.openhab-core-io-rest-auth/4.0.3="openhab-core-io-rest-auth/4.0.3" feature.openhab-core-io-rest-auth/4.0.4="openhab-core-io-rest-auth/4.0.4"
feature.openhab-core-io-rest-log/4.0.3="openhab-core-io-rest-log/4.0.3" feature.openhab-core-io-rest-log/4.0.4="openhab-core-io-rest-log/4.0.4"
feature.openhab-core-io-rest-mdns/4.0.3="openhab-core-io-rest-mdns/4.0.3" feature.openhab-core-io-rest-mdns/4.0.4="openhab-core-io-rest-mdns/4.0.4"
feature.openhab-core-io-rest-sitemap/4.0.3="openhab-core-io-rest-sitemap/4.0.3" feature.openhab-core-io-rest-sitemap/4.0.4="openhab-core-io-rest-sitemap/4.0.4"
feature.openhab-core-io-rest-swagger/4.0.3="openhab-core-io-rest-swagger/4.0.3" feature.openhab-core-io-rest-swagger/4.0.4="openhab-core-io-rest-swagger/4.0.4"
feature.openhab-core-io-rest-transform/4.0.3="openhab-core-io-rest-transform/4.0.3" feature.openhab-core-io-rest-transform/4.0.4="openhab-core-io-rest-transform/4.0.4"
feature.openhab-core-io-rest-voice/4.0.3="openhab-core-io-rest-voice/4.0.3" feature.openhab-core-io-rest-voice/4.0.4="openhab-core-io-rest-voice/4.0.4"
feature.openhab-core-io-transport-coap/4.0.3="openhab-core-io-transport-coap/4.0.3" feature.openhab-core-io-transport-coap/4.0.4="openhab-core-io-transport-coap/4.0.4"
feature.openhab-core-io-transport-http/4.0.3="openhab-core-io-transport-http/4.0.3" feature.openhab-core-io-transport-http/4.0.4="openhab-core-io-transport-http/4.0.4"
feature.openhab-core-io-transport-mdns/4.0.3="openhab-core-io-transport-mdns/4.0.3" feature.openhab-core-io-transport-mdns/4.0.4="openhab-core-io-transport-mdns/4.0.4"
feature.openhab-core-io-transport-modbus/4.0.3="openhab-core-io-transport-modbus/4.0.3" feature.openhab-core-io-transport-modbus/4.0.4="openhab-core-io-transport-modbus/4.0.4"
feature.openhab-core-io-transport-mqtt/4.0.3="openhab-core-io-transport-mqtt/4.0.3" feature.openhab-core-io-transport-mqtt/4.0.4="openhab-core-io-transport-mqtt/4.0.4"
feature.openhab-core-io-transport-serial-javacomm/4.0.3="openhab-core-io-transport-serial-javacomm/4.0.3" feature.openhab-core-io-transport-serial-javacomm/4.0.4="openhab-core-io-transport-serial-javacomm/4.0.4"
feature.openhab-core-io-transport-upnp/4.0.3="openhab-core-io-transport-upnp/4.0.3" feature.openhab-core-io-transport-upnp/4.0.4="openhab-core-io-transport-upnp/4.0.4"
feature.openhab-core-io-websocket/4.0.3="openhab-core-io-websocket/4.0.3" feature.openhab-core-io-websocket/4.0.4="openhab-core-io-websocket/4.0.4"
feature.openhab-core-model-item-ide/4.0.3="openhab-core-model-item-ide/4.0.3" feature.openhab-core-model-item-ide/4.0.4="openhab-core-model-item-ide/4.0.4"
feature.openhab-core-model-item/4.0.3="openhab-core-model-item/4.0.3" feature.openhab-core-model-item/4.0.4="openhab-core-model-item/4.0.4"
feature.openhab-core-model-lsp/4.0.3="openhab-core-model-lsp/4.0.3" feature.openhab-core-model-lsp/4.0.4="openhab-core-model-lsp/4.0.4"
feature.openhab-core-model-persistence-ide/4.0.3="openhab-core-model-persistence-ide/4.0.3" feature.openhab-core-model-persistence-ide/4.0.4="openhab-core-model-persistence-ide/4.0.4"
feature.openhab-core-model-persistence/4.0.3="openhab-core-model-persistence/4.0.3" feature.openhab-core-model-persistence/4.0.4="openhab-core-model-persistence/4.0.4"
feature.openhab-core-model-rule-ide/4.0.3="openhab-core-model-rule-ide/4.0.3" feature.openhab-core-model-rule-ide/4.0.4="openhab-core-model-rule-ide/4.0.4"
feature.openhab-core-model-rule/4.0.3="openhab-core-model-rule/4.0.3" feature.openhab-core-model-rule/4.0.4="openhab-core-model-rule/4.0.4"
feature.openhab-core-model-script-ide/4.0.3="openhab-core-model-script-ide/4.0.3" feature.openhab-core-model-script-ide/4.0.4="openhab-core-model-script-ide/4.0.4"
feature.openhab-core-model-script/4.0.3="openhab-core-model-script/4.0.3" feature.openhab-core-model-script/4.0.4="openhab-core-model-script/4.0.4"
feature.openhab-core-model-sitemap-ide/4.0.3="openhab-core-model-sitemap-ide/4.0.3" feature.openhab-core-model-sitemap-ide/4.0.4="openhab-core-model-sitemap-ide/4.0.4"
feature.openhab-core-model-sitemap/4.0.3="openhab-core-model-sitemap/4.0.3" feature.openhab-core-model-sitemap/4.0.4="openhab-core-model-sitemap/4.0.4"
feature.openhab-core-model-thing-ide/4.0.3="openhab-core-model-thing-ide/4.0.3" feature.openhab-core-model-thing-ide/4.0.4="openhab-core-model-thing-ide/4.0.4"
feature.openhab-core-model-thing/4.0.3="openhab-core-model-thing/4.0.3" feature.openhab-core-model-thing/4.0.4="openhab-core-model-thing/4.0.4"
feature.openhab-core-storage-json/4.0.3="openhab-core-storage-json/4.0.3" feature.openhab-core-storage-json/4.0.4="openhab-core-storage-json/4.0.4"
feature.openhab-core-ui-icon/4.0.3="openhab-core-ui-icon/4.0.3" feature.openhab-core-ui-icon/4.0.4="openhab-core-ui-icon/4.0.4"
feature.openhab-core-ui/4.0.3="openhab-core-ui/4.0.3" feature.openhab-core-ui/4.0.4="openhab-core-ui/4.0.4"
feature.openhab-runtime-base="openhab-runtime-base" feature.openhab-runtime-base="openhab-runtime-base"
feature.openhab-runtime-base/4.0.3="openhab-runtime-base/4.0.3" feature.openhab-runtime-base/4.0.4="openhab-runtime-base/4.0.4"
feature.openhab-runtime-certificate/4.0.3="openhab-runtime-certificate/4.0.3" feature.openhab-runtime-certificate/4.0.4="openhab-runtime-certificate/4.0.4"
feature.openhab-runtime-ui="openhab-runtime-ui" feature.openhab-runtime-ui="openhab-runtime-ui"
feature.openhab-runtime-ui/4.0.3="openhab-runtime-ui/4.0.3" feature.openhab-runtime-ui/4.0.4="openhab-runtime-ui/4.0.4"
feature.openhab-transport-coap/4.0.3="openhab-transport-coap/4.0.3" feature.openhab-transport-coap/4.0.4="openhab-transport-coap/4.0.4"
feature.openhab-transport-http/4.0.3="openhab-transport-http/4.0.3" feature.openhab-transport-http/4.0.4="openhab-transport-http/4.0.4"
feature.openhab-transport-mdns/4.0.3="openhab-transport-mdns/4.0.3" feature.openhab-transport-mdns/4.0.4="openhab-transport-mdns/4.0.4"
feature.openhab-transport-modbus/4.0.3="openhab-transport-modbus/4.0.3" feature.openhab-transport-modbus/4.0.4="openhab-transport-modbus/4.0.4"
feature.openhab-transport-mqtt/4.0.3="openhab-transport-mqtt/4.0.3" feature.openhab-transport-mqtt/4.0.4="openhab-transport-mqtt/4.0.4"
feature.openhab-transport-serial/4.0.3="openhab-transport-serial/4.0.3" feature.openhab-transport-serial/4.0.4="openhab-transport-serial/4.0.4"
feature.openhab-transport-upnp/4.0.3="openhab-transport-upnp/4.0.3" feature.openhab-transport-upnp/4.0.4="openhab-transport-upnp/4.0.4"
feature.openhab.inc-model-core/4.0.3="openhab.inc-model-core/4.0.3" feature.openhab.inc-model-core/4.0.4="openhab.inc-model-core/4.0.4"
feature.openhab.tp-asm/4.0.3="openhab.tp-asm/4.0.3" feature.openhab.tp-asm/4.0.4="openhab.tp-asm/4.0.4"
feature.openhab.tp-base/4.0.3="openhab.tp-base/4.0.3" feature.openhab.tp-base/4.0.4="openhab.tp-base/4.0.4"
feature.openhab.tp-coap/4.0.3="openhab.tp-coap/4.0.3" feature.openhab.tp-coap/4.0.4="openhab.tp-coap/4.0.4"
feature.openhab.tp-commons-net/4.0.3="openhab.tp-commons-net/4.0.3" feature.openhab.tp-commons-net/4.0.4="openhab.tp-commons-net/4.0.4"
feature.openhab.tp-cxf/4.0.3="openhab.tp-cxf/4.0.3" feature.openhab.tp-cxf/4.0.4="openhab.tp-cxf/4.0.4"
feature.openhab.tp-gson/4.0.3="openhab.tp-gson/4.0.3" feature.openhab.tp-gson/4.0.4="openhab.tp-gson/4.0.4"
feature.openhab.tp-hivemqclient/4.0.3="openhab.tp-hivemqclient/4.0.3" feature.openhab.tp-hivemqclient/4.0.4="openhab.tp-hivemqclient/4.0.4"
feature.openhab.tp-httpclient/4.0.3="openhab.tp-httpclient/4.0.3" feature.openhab.tp-httpclient/4.0.4="openhab.tp-httpclient/4.0.4"
feature.openhab.tp-jackson/4.0.3="openhab.tp-jackson/4.0.3" feature.openhab.tp-jackson/4.0.4="openhab.tp-jackson/4.0.4"
feature.openhab.tp-jax-rs-whiteboard/4.0.3="openhab.tp-jax-rs-whiteboard/4.0.3" feature.openhab.tp-jax-rs-whiteboard/4.0.4="openhab.tp-jax-rs-whiteboard/4.0.4"
feature.openhab.tp-jaxb/4.0.3="openhab.tp-jaxb/4.0.3" feature.openhab.tp-jaxb/4.0.4="openhab.tp-jaxb/4.0.4"
feature.openhab.tp-jaxws/4.0.3="openhab.tp-jaxws/4.0.3" feature.openhab.tp-jaxws/4.0.4="openhab.tp-jaxws/4.0.4"
feature.openhab.tp-jbbp/4.0.3="openhab.tp-jbbp/4.0.3" feature.openhab.tp-jbbp/4.0.4="openhab.tp-jbbp/4.0.4"
feature.openhab.tp-jmdns/4.0.3="openhab.tp-jmdns/4.0.3" feature.openhab.tp-jmdns/4.0.4="openhab.tp-jmdns/4.0.4"
feature.openhab.tp-jna/4.0.3="openhab.tp-jna/4.0.3" feature.openhab.tp-jna/4.0.4="openhab.tp-jna/4.0.4"
feature.openhab.tp-jollyday/4.0.3="openhab.tp-jollyday/4.0.3" feature.openhab.tp-jollyday/4.0.4="openhab.tp-jollyday/4.0.4"
feature.openhab.tp-jose4j/4.0.3="openhab.tp-jose4j/4.0.3" feature.openhab.tp-jose4j/4.0.4="openhab.tp-jose4j/4.0.4"
feature.openhab.tp-jupnp/4.0.3="openhab.tp-jupnp/4.0.3" feature.openhab.tp-jupnp/4.0.4="openhab.tp-jupnp/4.0.4"
feature.openhab.tp-lsp4j/4.0.3="openhab.tp-lsp4j/4.0.3" feature.openhab.tp-lsp4j/4.0.4="openhab.tp-lsp4j/4.0.4"
feature.openhab.tp-netty/4.0.3="openhab.tp-netty/4.0.3" feature.openhab.tp-netty/4.0.4="openhab.tp-netty/4.0.4"
feature.openhab.tp-serial-javacomm/4.0.3="openhab.tp-serial-javacomm/4.0.3" feature.openhab.tp-serial-javacomm/4.0.4="openhab.tp-serial-javacomm/4.0.4"
feature.openhab.tp-serial-rxtx/4.0.3="openhab.tp-serial-rxtx/4.0.3" feature.openhab.tp-serial-rxtx/4.0.4="openhab.tp-serial-rxtx/4.0.4"
feature.openhab.tp-swagger-jaxrs/4.0.3="openhab.tp-swagger-jaxrs/4.0.3" feature.openhab.tp-swagger-jaxrs/4.0.4="openhab.tp-swagger-jaxrs/4.0.4"
feature.openhab.tp-xtext-ide/4.0.3="openhab.tp-xtext-ide/4.0.3" feature.openhab.tp-xtext-ide/4.0.4="openhab.tp-xtext-ide/4.0.4"
feature.openhab.tp-xtext/4.0.3="openhab.tp-xtext/4.0.3" feature.openhab.tp-xtext/4.0.4="openhab.tp-xtext/4.0.4"
feature.package="package" feature.package="package"
feature.service="service" feature.service="service"
feature.shell="shell" feature.shell="shell"
@ -105,8 +105,8 @@ feature.wrapper="wrapper"
felix.fileinstall.filename="file:/openhab/userdata/etc/profile.cfg" felix.fileinstall.filename="file:/openhab/userdata/etc/profile.cfg"
repository.mvn:org.apache.karaf.features/framework/4.4.3/xml/features="mvn:org.apache.karaf.features/framework/4.4.3/xml/features" repository.mvn:org.apache.karaf.features/framework/4.4.3/xml/features="mvn:org.apache.karaf.features/framework/4.4.3/xml/features"
repository.mvn:org.apache.karaf.features/standard/4.4.3/xml/features="mvn:org.apache.karaf.features/standard/4.4.3/xml/features" repository.mvn:org.apache.karaf.features/standard/4.4.3/xml/features="mvn:org.apache.karaf.features/standard/4.4.3/xml/features"
repository.mvn:org.openhab.distro/distro-kar/4.0.3/xml/features="mvn:org.openhab.distro/distro-kar/4.0.3/xml/features" repository.mvn:org.openhab.distro/distro-kar/4.0.4/xml/features="mvn:org.openhab.distro/distro-kar/4.0.4/xml/features"
repository.mvn:org.openhab.distro/distro/4.0.3/xml/features="mvn:org.openhab.distro/distro/4.0.3/xml/features" repository.mvn:org.openhab.distro/distro/4.0.4/xml/features="mvn:org.openhab.distro/distro/4.0.4/xml/features"
repository.mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features="mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features" repository.mvn:org.openhab.distro/openhab-addons/4.0.4/xml/features="mvn:org.openhab.distro/openhab-addons/4.0.4/xml/features"
service.bundleLocation="?" service.bundleLocation="?"
service.pid="profile" service.pid="profile"

View file

@ -4,7 +4,7 @@ welcome = \r\n\
\u001B[91m / _ \\ / _ \\ / _ \\ / _ \\ \u001B[97m| |_| | / _ \\ | _ \\ \u001B[0m\r\n\ \u001B[91m / _ \\ / _ \\ / _ \\ / _ \\ \u001B[97m| |_| | / _ \\ | _ \\ \u001B[0m\r\n\
\u001B[91m | (_) | (_) | __/| | | |\u001B[97m| _ | / ___ \\ | |_) )\u001B[0m\r\n\ \u001B[91m | (_) | (_) | __/| | | |\u001B[97m| _ | / ___ \\ | |_) )\u001B[0m\r\n\
\u001B[91m \\___/| __/ \\___/|_| |_|\u001B[97m|_| |_|/_/ \\_\\|____/ \u001B[0m\r\n\ \u001B[91m \\___/| __/ \\___/|_| |_|\u001B[97m|_| |_|/_/ \\_\\|____/ \u001B[0m\r\n\
\u001B[91m |_| \u001B[0m 4.0.3 - Release Build\u001B[0m\r\n\ \u001B[91m |_| \u001B[0m 4.0.4 - Release Build\u001B[0m\r\n\
\r\n\ \r\n\
Use '\u001B[1m<tab>\u001B[0m' for a list of available commands\r\n\ Use '\u001B[1m<tab>\u001B[0m' for a list of available commands\r\n\
and '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\r\n\ and '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\r\n\

View file

@ -4,7 +4,7 @@ welcome = \r\n\
\u001B[91m / _ \\ / _ \\ / _ \\ / _ \\ \u001B[97m| |_| | / _ \\ | _ \\ \u001B[0m\r\n\ \u001B[91m / _ \\ / _ \\ / _ \\ / _ \\ \u001B[97m| |_| | / _ \\ | _ \\ \u001B[0m\r\n\
\u001B[91m | (_) | (_) | __/| | | |\u001B[97m| _ | / ___ \\ | |_) )\u001B[0m\r\n\ \u001B[91m | (_) | (_) | __/| | | |\u001B[97m| _ | / ___ \\ | |_) )\u001B[0m\r\n\
\u001B[91m \\___/| __/ \\___/|_| |_|\u001B[97m|_| |_|/_/ \\_\\|____/ \u001B[0m\r\n\ \u001B[91m \\___/| __/ \\___/|_| |_|\u001B[97m|_| |_|/_/ \\_\\|____/ \u001B[0m\r\n\
\u001B[91m |_| \u001B[0m 4.0.3 - Release Build\u001B[0m\r\n\ \u001B[91m |_| \u001B[0m 4.0.4 - Release Build\u001B[0m\r\n\
\r\n\ \r\n\
Use '\u001B[1m<tab>\u001B[0m' for a list of available commands\r\n\ Use '\u001B[1m<tab>\u001B[0m' for a list of available commands\r\n\
and '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\r\n\ and '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\r\n\

View file

@ -304,7 +304,7 @@ karaf.delay.console=false
# #
# Generated command shutdown # Generated command shutdown
# #
karaf.shutdown.command = 3671966a-c132-484c-b14d-9dfe27d34b1b karaf.shutdown.command = 1930c756-b498-48ea-b592-94f2b4e26135
# #
# Enable native Karaf support for systemd's watchdog. # Enable native Karaf support for systemd's watchdog.

View file

@ -21,8 +21,8 @@
# Comma separated list of features repositories to register by default # Comma separated list of features repositories to register by default
# #
featuresRepositories = \ featuresRepositories = \
mvn:org.openhab.distro/distro/4.0.3/xml/features, \ mvn:org.openhab.distro/distro/4.0.4/xml/features, \
mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features, \ mvn:org.openhab.distro/openhab-addons/4.0.4/xml/features, \
mvn:org.apache.karaf.features/framework/4.4.3/xml/features, \ mvn:org.apache.karaf.features/framework/4.4.3/xml/features, \
mvn:org.apache.karaf.features/standard/4.4.3/xml/features mvn:org.apache.karaf.features/standard/4.4.3/xml/features

View file

@ -11,9 +11,9 @@ attribute.overlay = true
# Feature XML repositories # Feature XML repositories
repository.mvn\:org.apache.karaf.features/standard/4.4.3/xml/features = mvn:org.apache.karaf.features/standard/4.4.3/xml/features repository.mvn\:org.apache.karaf.features/standard/4.4.3/xml/features = mvn:org.apache.karaf.features/standard/4.4.3/xml/features
repository.mvn\:org.apache.karaf.features/framework/4.4.3/xml/features = mvn:org.apache.karaf.features/framework/4.4.3/xml/features repository.mvn\:org.apache.karaf.features/framework/4.4.3/xml/features = mvn:org.apache.karaf.features/framework/4.4.3/xml/features
repository.mvn\:org.openhab.distro/distro/4.0.3/xml/features = mvn:org.openhab.distro/distro/4.0.3/xml/features repository.mvn\:org.openhab.distro/distro/4.0.4/xml/features = mvn:org.openhab.distro/distro/4.0.4/xml/features
repository.mvn\:org.openhab.distro/openhab-addons/4.0.3/xml/features = mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features repository.mvn\:org.openhab.distro/openhab-addons/4.0.4/xml/features = mvn:org.openhab.distro/openhab-addons/4.0.4/xml/features
repository.mvn\:org.openhab.distro/distro-kar/4.0.3/xml/features = mvn:org.openhab.distro/distro-kar/4.0.3/xml/features repository.mvn\:org.openhab.distro/distro-kar/4.0.4/xml/features = mvn:org.openhab.distro/distro-kar/4.0.4/xml/features
# Features # Features
feature.framework = framework feature.framework = framework
@ -36,84 +36,84 @@ feature.openhab-runtime-base = openhab-runtime-base
feature.openhab-runtime-ui = openhab-runtime-ui feature.openhab-runtime-ui = openhab-runtime-ui
feature.wrapper = wrapper feature.wrapper = wrapper
feature.wrap = wrap feature.wrap = wrap
feature.openhab-runtime-ui/4.0.3 = openhab-runtime-ui/4.0.3 feature.openhab-runtime-ui/4.0.4 = openhab-runtime-ui/4.0.4
feature.openhab-core-base/4.0.3 = openhab-core-base/4.0.3 feature.openhab-core-base/4.0.4 = openhab-core-base/4.0.4
feature.openhab-core-addon-marketplace/4.0.3 = openhab-core-addon-marketplace/4.0.3 feature.openhab-core-addon-marketplace/4.0.4 = openhab-core-addon-marketplace/4.0.4
feature.openhab-core-auth-jaas/4.0.3 = openhab-core-auth-jaas/4.0.3 feature.openhab-core-auth-jaas/4.0.4 = openhab-core-auth-jaas/4.0.4
feature.openhab-core-auth-oauth2client/4.0.3 = openhab-core-auth-oauth2client/4.0.3 feature.openhab-core-auth-oauth2client/4.0.4 = openhab-core-auth-oauth2client/4.0.4
feature.openhab-core-automation-module-script/4.0.3 = openhab-core-automation-module-script/4.0.3 feature.openhab-core-automation-module-script/4.0.4 = openhab-core-automation-module-script/4.0.4
feature.openhab-core-automation-module-script-rulesupport/4.0.3 = openhab-core-automation-module-script-rulesupport/4.0.3 feature.openhab-core-automation-module-script-rulesupport/4.0.4 = openhab-core-automation-module-script-rulesupport/4.0.4
feature.openhab-core-automation-module-media/4.0.3 = openhab-core-automation-module-media/4.0.3 feature.openhab-core-automation-module-media/4.0.4 = openhab-core-automation-module-media/4.0.4
feature.openhab-core-automation-rest/4.0.3 = openhab-core-automation-rest/4.0.3 feature.openhab-core-automation-rest/4.0.4 = openhab-core-automation-rest/4.0.4
feature.openhab-core-io-bin2json/4.0.3 = openhab-core-io-bin2json/4.0.3 feature.openhab-core-io-bin2json/4.0.4 = openhab-core-io-bin2json/4.0.4
feature.openhab-core-io-console-karaf/4.0.3 = openhab-core-io-console-karaf/4.0.3 feature.openhab-core-io-console-karaf/4.0.4 = openhab-core-io-console-karaf/4.0.4
feature.openhab-core-io-http-auth/4.0.3 = openhab-core-io-http-auth/4.0.3 feature.openhab-core-io-http-auth/4.0.4 = openhab-core-io-http-auth/4.0.4
feature.openhab-core-io-rest-auth/4.0.3 = openhab-core-io-rest-auth/4.0.3 feature.openhab-core-io-rest-auth/4.0.4 = openhab-core-io-rest-auth/4.0.4
feature.openhab-core-io-rest-log/4.0.3 = openhab-core-io-rest-log/4.0.3 feature.openhab-core-io-rest-log/4.0.4 = openhab-core-io-rest-log/4.0.4
feature.openhab-core-io-rest-sitemap/4.0.3 = openhab-core-io-rest-sitemap/4.0.3 feature.openhab-core-io-rest-sitemap/4.0.4 = openhab-core-io-rest-sitemap/4.0.4
feature.openhab-core-io-rest-swagger/4.0.3 = openhab-core-io-rest-swagger/4.0.3 feature.openhab-core-io-rest-swagger/4.0.4 = openhab-core-io-rest-swagger/4.0.4
feature.openhab-core-io-rest-audio/4.0.3 = openhab-core-io-rest-audio/4.0.3 feature.openhab-core-io-rest-audio/4.0.4 = openhab-core-io-rest-audio/4.0.4
feature.openhab-core-io-rest-transform/4.0.3 = openhab-core-io-rest-transform/4.0.3 feature.openhab-core-io-rest-transform/4.0.4 = openhab-core-io-rest-transform/4.0.4
feature.openhab-core-io-rest-voice/4.0.3 = openhab-core-io-rest-voice/4.0.3 feature.openhab-core-io-rest-voice/4.0.4 = openhab-core-io-rest-voice/4.0.4
feature.openhab-core-io-rest-mdns/4.0.3 = openhab-core-io-rest-mdns/4.0.3 feature.openhab-core-io-rest-mdns/4.0.4 = openhab-core-io-rest-mdns/4.0.4
feature.openhab-core-io-websocket/4.0.3 = openhab-core-io-websocket/4.0.3 feature.openhab-core-io-websocket/4.0.4 = openhab-core-io-websocket/4.0.4
feature.openhab-core-io-transport-coap/4.0.3 = openhab-core-io-transport-coap/4.0.3 feature.openhab-core-io-transport-coap/4.0.4 = openhab-core-io-transport-coap/4.0.4
feature.openhab-core-io-transport-http/4.0.3 = openhab-core-io-transport-http/4.0.3 feature.openhab-core-io-transport-http/4.0.4 = openhab-core-io-transport-http/4.0.4
feature.openhab-core-io-transport-mdns/4.0.3 = openhab-core-io-transport-mdns/4.0.3 feature.openhab-core-io-transport-mdns/4.0.4 = openhab-core-io-transport-mdns/4.0.4
feature.openhab-core-io-transport-modbus/4.0.3 = openhab-core-io-transport-modbus/4.0.3 feature.openhab-core-io-transport-modbus/4.0.4 = openhab-core-io-transport-modbus/4.0.4
feature.openhab-core-io-transport-mqtt/4.0.3 = openhab-core-io-transport-mqtt/4.0.3 feature.openhab-core-io-transport-mqtt/4.0.4 = openhab-core-io-transport-mqtt/4.0.4
feature.openhab-core-io-transport-serial-javacomm/4.0.3 = openhab-core-io-transport-serial-javacomm/4.0.3 feature.openhab-core-io-transport-serial-javacomm/4.0.4 = openhab-core-io-transport-serial-javacomm/4.0.4
feature.openhab-core-io-transport-upnp/4.0.3 = openhab-core-io-transport-upnp/4.0.3 feature.openhab-core-io-transport-upnp/4.0.4 = openhab-core-io-transport-upnp/4.0.4
feature.openhab.inc-model-core/4.0.3 = openhab.inc-model-core/4.0.3 feature.openhab.inc-model-core/4.0.4 = openhab.inc-model-core/4.0.4
feature.openhab-core-model-item/4.0.3 = openhab-core-model-item/4.0.3 feature.openhab-core-model-item/4.0.4 = openhab-core-model-item/4.0.4
feature.openhab-core-model-item-ide/4.0.3 = openhab-core-model-item-ide/4.0.3 feature.openhab-core-model-item-ide/4.0.4 = openhab-core-model-item-ide/4.0.4
feature.openhab-core-model-persistence/4.0.3 = openhab-core-model-persistence/4.0.3 feature.openhab-core-model-persistence/4.0.4 = openhab-core-model-persistence/4.0.4
feature.openhab-core-model-persistence-ide/4.0.3 = openhab-core-model-persistence-ide/4.0.3 feature.openhab-core-model-persistence-ide/4.0.4 = openhab-core-model-persistence-ide/4.0.4
feature.openhab-core-model-rule/4.0.3 = openhab-core-model-rule/4.0.3 feature.openhab-core-model-rule/4.0.4 = openhab-core-model-rule/4.0.4
feature.openhab-core-model-rule-ide/4.0.3 = openhab-core-model-rule-ide/4.0.3 feature.openhab-core-model-rule-ide/4.0.4 = openhab-core-model-rule-ide/4.0.4
feature.openhab-core-model-script/4.0.3 = openhab-core-model-script/4.0.3 feature.openhab-core-model-script/4.0.4 = openhab-core-model-script/4.0.4
feature.openhab-core-model-script-ide/4.0.3 = openhab-core-model-script-ide/4.0.3 feature.openhab-core-model-script-ide/4.0.4 = openhab-core-model-script-ide/4.0.4
feature.openhab-core-model-sitemap/4.0.3 = openhab-core-model-sitemap/4.0.3 feature.openhab-core-model-sitemap/4.0.4 = openhab-core-model-sitemap/4.0.4
feature.openhab-core-model-sitemap-ide/4.0.3 = openhab-core-model-sitemap-ide/4.0.3 feature.openhab-core-model-sitemap-ide/4.0.4 = openhab-core-model-sitemap-ide/4.0.4
feature.openhab-core-model-thing/4.0.3 = openhab-core-model-thing/4.0.3 feature.openhab-core-model-thing/4.0.4 = openhab-core-model-thing/4.0.4
feature.openhab-core-model-thing-ide/4.0.3 = openhab-core-model-thing-ide/4.0.3 feature.openhab-core-model-thing-ide/4.0.4 = openhab-core-model-thing-ide/4.0.4
feature.openhab-core-model-lsp/4.0.3 = openhab-core-model-lsp/4.0.3 feature.openhab-core-model-lsp/4.0.4 = openhab-core-model-lsp/4.0.4
feature.openhab-core-storage-json/4.0.3 = openhab-core-storage-json/4.0.3 feature.openhab-core-storage-json/4.0.4 = openhab-core-storage-json/4.0.4
feature.openhab-core-ui/4.0.3 = openhab-core-ui/4.0.3 feature.openhab-core-ui/4.0.4 = openhab-core-ui/4.0.4
feature.openhab-core-ui-icon/4.0.3 = openhab-core-ui-icon/4.0.3 feature.openhab-core-ui-icon/4.0.4 = openhab-core-ui-icon/4.0.4
feature.openhab-runtime-base/4.0.3 = openhab-runtime-base/4.0.3 feature.openhab-runtime-base/4.0.4 = openhab-runtime-base/4.0.4
feature.openhab-runtime-certificate/4.0.3 = openhab-runtime-certificate/4.0.3 feature.openhab-runtime-certificate/4.0.4 = openhab-runtime-certificate/4.0.4
feature.openhab-transport-coap/4.0.3 = openhab-transport-coap/4.0.3 feature.openhab-transport-coap/4.0.4 = openhab-transport-coap/4.0.4
feature.openhab-transport-http/4.0.3 = openhab-transport-http/4.0.3 feature.openhab-transport-http/4.0.4 = openhab-transport-http/4.0.4
feature.openhab-transport-mdns/4.0.3 = openhab-transport-mdns/4.0.3 feature.openhab-transport-mdns/4.0.4 = openhab-transport-mdns/4.0.4
feature.openhab-transport-modbus/4.0.3 = openhab-transport-modbus/4.0.3 feature.openhab-transport-modbus/4.0.4 = openhab-transport-modbus/4.0.4
feature.openhab-transport-mqtt/4.0.3 = openhab-transport-mqtt/4.0.3 feature.openhab-transport-mqtt/4.0.4 = openhab-transport-mqtt/4.0.4
feature.openhab-transport-serial/4.0.3 = openhab-transport-serial/4.0.3 feature.openhab-transport-serial/4.0.4 = openhab-transport-serial/4.0.4
feature.openhab-transport-upnp/4.0.3 = openhab-transport-upnp/4.0.3 feature.openhab-transport-upnp/4.0.4 = openhab-transport-upnp/4.0.4
feature.openhab.tp-base/4.0.3 = openhab.tp-base/4.0.3 feature.openhab.tp-base/4.0.4 = openhab.tp-base/4.0.4
feature.openhab.tp-coap/4.0.3 = openhab.tp-coap/4.0.3 feature.openhab.tp-coap/4.0.4 = openhab.tp-coap/4.0.4
feature.openhab.tp-commons-net/4.0.3 = openhab.tp-commons-net/4.0.3 feature.openhab.tp-commons-net/4.0.4 = openhab.tp-commons-net/4.0.4
feature.openhab.tp-gson/4.0.3 = openhab.tp-gson/4.0.3 feature.openhab.tp-gson/4.0.4 = openhab.tp-gson/4.0.4
feature.openhab.tp-hivemqclient/4.0.3 = openhab.tp-hivemqclient/4.0.3 feature.openhab.tp-hivemqclient/4.0.4 = openhab.tp-hivemqclient/4.0.4
feature.openhab.tp-httpclient/4.0.3 = openhab.tp-httpclient/4.0.3 feature.openhab.tp-httpclient/4.0.4 = openhab.tp-httpclient/4.0.4
feature.openhab.tp-jackson/4.0.3 = openhab.tp-jackson/4.0.3 feature.openhab.tp-jackson/4.0.4 = openhab.tp-jackson/4.0.4
feature.openhab.tp-asm/4.0.3 = openhab.tp-asm/4.0.3 feature.openhab.tp-asm/4.0.4 = openhab.tp-asm/4.0.4
feature.openhab.tp-jax-rs-whiteboard/4.0.3 = openhab.tp-jax-rs-whiteboard/4.0.3 feature.openhab.tp-jax-rs-whiteboard/4.0.4 = openhab.tp-jax-rs-whiteboard/4.0.4
feature.openhab.tp-jna/4.0.3 = openhab.tp-jna/4.0.3 feature.openhab.tp-jna/4.0.4 = openhab.tp-jna/4.0.4
feature.openhab.tp-cxf/4.0.3 = openhab.tp-cxf/4.0.3 feature.openhab.tp-cxf/4.0.4 = openhab.tp-cxf/4.0.4
feature.openhab.tp-jbbp/4.0.3 = openhab.tp-jbbp/4.0.3 feature.openhab.tp-jbbp/4.0.4 = openhab.tp-jbbp/4.0.4
feature.openhab.tp-netty/4.0.3 = openhab.tp-netty/4.0.3 feature.openhab.tp-netty/4.0.4 = openhab.tp-netty/4.0.4
feature.openhab.tp-jaxb/4.0.3 = openhab.tp-jaxb/4.0.3 feature.openhab.tp-jaxb/4.0.4 = openhab.tp-jaxb/4.0.4
feature.openhab.tp-jaxws/4.0.3 = openhab.tp-jaxws/4.0.3 feature.openhab.tp-jaxws/4.0.4 = openhab.tp-jaxws/4.0.4
feature.openhab.tp-jollyday/4.0.3 = openhab.tp-jollyday/4.0.3 feature.openhab.tp-jollyday/4.0.4 = openhab.tp-jollyday/4.0.4
feature.openhab.tp-jmdns/4.0.3 = openhab.tp-jmdns/4.0.3 feature.openhab.tp-jmdns/4.0.4 = openhab.tp-jmdns/4.0.4
feature.openhab.tp-jose4j/4.0.3 = openhab.tp-jose4j/4.0.3 feature.openhab.tp-jose4j/4.0.4 = openhab.tp-jose4j/4.0.4
feature.openhab.tp-jupnp/4.0.3 = openhab.tp-jupnp/4.0.3 feature.openhab.tp-jupnp/4.0.4 = openhab.tp-jupnp/4.0.4
feature.openhab.tp-lsp4j/4.0.3 = openhab.tp-lsp4j/4.0.3 feature.openhab.tp-lsp4j/4.0.4 = openhab.tp-lsp4j/4.0.4
feature.openhab.tp-serial-javacomm/4.0.3 = openhab.tp-serial-javacomm/4.0.3 feature.openhab.tp-serial-javacomm/4.0.4 = openhab.tp-serial-javacomm/4.0.4
feature.openhab.tp-serial-rxtx/4.0.3 = openhab.tp-serial-rxtx/4.0.3 feature.openhab.tp-serial-rxtx/4.0.4 = openhab.tp-serial-rxtx/4.0.4
feature.openhab.tp-xtext/4.0.3 = openhab.tp-xtext/4.0.3 feature.openhab.tp-xtext/4.0.4 = openhab.tp-xtext/4.0.4
feature.openhab.tp-xtext-ide/4.0.3 = openhab.tp-xtext-ide/4.0.3 feature.openhab.tp-xtext-ide/4.0.4 = openhab.tp-xtext-ide/4.0.4
feature.openhab.tp-swagger-jaxrs/4.0.3 = openhab.tp-swagger-jaxrs/4.0.3 feature.openhab.tp-swagger-jaxrs/4.0.4 = openhab.tp-swagger-jaxrs/4.0.4
feature.distro/4.0.3 = distro/4.0.3 feature.distro/4.0.4 = distro/4.0.4
feature.distro-kar/4.0.3 = distro-kar/4.0.3 feature.distro-kar/4.0.4 = distro-kar/4.0.4

View file

@ -5,7 +5,7 @@ online-repo : https://openhab.jfrog.io/openhab/libs-release
Repository Version Repository Version
---------------------------------------- ----------------------------------------
openhab-distro : 4.0.3 openhab-distro : 4.0.4
openhab-core : 4.0.3 openhab-core : 4.0.4
openhab-addons : 4.0.3 openhab-addons : 4.0.4
karaf : 4.4.3 karaf : 4.4.3

View file

@ -0,0 +1,26 @@
{
"admin": {
"class": "org.openhab.core.auth.ManagedUser",
"value": {
"name": "admin",
"passwordHash": "Gy9oNwY2mWCTA/r5Yiv2o/D/Y+V3fHkT0aVMheibVzf14HsCuyHL/wYupza6AFMu+b2ojOOm8TPSbaI5cvNQFA\u003d\u003d",
"passwordSalt": "9scUjJ7SDXQ2Zvkfap/DpxbGf/f2ql9A3XaDH5wOmtB3MP2s+X9vgmuWdX8pCFSu08qKWYNL/nDCD3+WyPuE4A\u003d\u003d",
"roles": [
"administrator"
],
"sessions": [
{
"sessionId": "e416ed9f-0319-4ab3-acd8-dc58fc15de56",
"refreshToken": "f1971ef03ff04d7fbb620ea1b33dbe4d",
"createdTime": "Dec 17, 2023, 8:34:12 PM",
"lastRefreshTime": "Dec 17, 2023, 8:34:12 PM",
"clientId": "http://localhost:8080",
"redirectUri": "http://localhost:8080",
"scope": "admin",
"sessionCookie": true
}
],
"apiTokens": []
}
}
}

View file

@ -0,0 +1,26 @@
{
"admin": {
"class": "org.openhab.core.auth.ManagedUser",
"value": {
"name": "admin",
"passwordHash": "Gy9oNwY2mWCTA/r5Yiv2o/D/Y+V3fHkT0aVMheibVzf14HsCuyHL/wYupza6AFMu+b2ojOOm8TPSbaI5cvNQFA\u003d\u003d",
"passwordSalt": "9scUjJ7SDXQ2Zvkfap/DpxbGf/f2ql9A3XaDH5wOmtB3MP2s+X9vgmuWdX8pCFSu08qKWYNL/nDCD3+WyPuE4A\u003d\u003d",
"roles": [
"administrator"
],
"sessions": [
{
"sessionId": "e416ed9f-0319-4ab3-acd8-dc58fc15de56",
"refreshToken": "f1971ef03ff04d7fbb620ea1b33dbe4d",
"createdTime": "Dec 17, 2023, 8:34:12 PM",
"lastRefreshTime": "Dec 17, 2023, 8:34:12 PM",
"clientId": "http://localhost:8080",
"redirectUri": "http://localhost:8080",
"scope": "admin",
"sessionCookie": true
}
],
"apiTokens": []
}
}
}

View file

@ -1 +1 @@
{"kty":"RSA","n":"xtlnpVyPt_L4tCCOovuFn6qNrorwSZ6RVmrMzSCZ4E7-9W6YcgRGWf8Rr2Qghv8wYlMtAc5f7xr0-CVSfM12oHyhxenWU6FcitJGFIYmnpuiwCEUphmIg3OtmsL1LnR3VFAJxLlhWYGBOhaGnz97w7zm1igF8YnxrEpuij9cR_QrSSoBd-bHVhMRJtEov0zNrxR45c0-VSGfucfSr-X-vyzd49ZPkMCeuc8BrVwsN8BfqRdX2MtyiCrulFNp8Q8gSFyUFTk67c20qHdgtJPyazT-lNc9K0TaJD5wEFCZcj5Fh-CVqav9Q1BxMLVaKmg3h78-sMgNYDzRferCCmFkCQ","e":"AQAB","d":"UQ6wVFUN9MMjpHGdE00KZFKm3J6gYrIztpFkmL2QXEJ3Zd7GX7vkXa0_LUrYg48kzv_u2cyhiJtpfnngTSWIFNWZME8o4gBl8-TRUm548bCpwD3759WCs2sFOo_8WAp71i-mO74Bs_W5ks8541KChgDL7EJ2YcaEcGIK-2nmmSFy7HZ0KypXdfqSTYbn2ZbEFJjjSYxmqSKTegvvXAUfIMwPfsdGfsy5S3H99QxX3-0K2XgduDi0d1dPxcuHMkftSG_oB0lAQrY9K9l_wisJvZNuqE0J4kucSbuvtEovHYceD0zRcGAQxFEaYa_oYSA5yJI2byr1pKVfBIpucCrYnQ","p":"x5-EO91jPK1rs__8T4orVJ_Q1T8sS7z9ny67hDhV8avbpLMpji1MwGmfNhnmSbJfm648EIvTZwxJj_-C09UaL7cZtEcmkHFJ26c9Rz0eecF_fKQbyfudr12NG0gm_immNXBBSSiRi_3KwnriUEEegfnXSXXeI6VrXHA9YDYiqAc","q":"_wHwNCcHVcxFqBsoZVRiJjRoI_8ZOhDmEE9pUjvDMTFz7cuoLBwKbggrpF-CmguENr8F3xsAQppOrW0Z-tWF9TYl0ydwF2SyiQ5ZRol0_jq2NHK7rZu2KvvRrY48kRSxNi3iRjxEM8Q-gWy8IEH1tW6Db6KQtck9axuFFl6k728","dp":"R1uTRl8OMUuAu5hfFgO7F4YFfaUWbYCCXNu0tj_5IOmhG0_cI_G3hPR8sDcz5dY4bQssd3G0QRrYVPwuRRDhSns2WgYxF-MXVsiClCuZ8EYmD2UOdfZW2LAlV8JEBgjXXDTjcYZp-NPhHgIVUkDk6etodN8IaE-igCmzFuhjHRM","dq":"6KJRCpLMS0Y2CZz05jPr8iR_GM-gqOs_poN7doyUji0qMDZJbiwKi8SiY6rKD1QQQo1Tguwz-Y6h1e6g88aVFVVXfmENDhpMEWJoqUO-2iqfjAtbEY7qyh2-dBE9SbFR1TZYpXBXW85co1-Z4-eoiuKNv2rTjzNN94c8i2K-Hrs","qi":"Q-LuIxo9bC76PubTswus3u4H9SHk-T95ASfaRHNKCqUG8rvBTC25zXB1KJlnX9KMn8cDwFb7UnuY-bqDWUpXpe4IcZJRv3MnZEKkRk0bgfTlNoX3pVOEfMiNXM1qb-3zyt4DBh1Z-1V49R8P9z_82H_gGZStBCfYQw9gZAcqfTA"} {"kty":"RSA","n":"2QaUe_zVEhrVWZ7THQJzEIhDlYwhheZM6G6Rp4bOl_Fd6k58Xgl3c73DuUlfCnMpD59fZJXcVIFBUdLZiwKw-XvrOYPrLbNmm_vNtiWXCjJHLnzGJvrAO6h52TzHgSpOa-nqxHKGG750xxebHpj_09WdfuDlntzW_ouddNeRrXhr4Zv5wX2YRbJa8--j9vgecImiFFy5fERVLttVA2tSmXRSXyBzdBk99iXmbL5sA8-nc9PQmZn_TMnyyU2Q6EiH5OP8BguH8RFn3f1r4bNiVuuPJZS4IHJUE7DGCujZp9_HvsX_QD53n8A5bd4KZ4DDj5k02_6YOGp4UL5g_KIRsQ","e":"AQAB","d":"NTAJJOfeWj0MS5YCnEn05DjZA2Yf8x5xe8dZWArQR-mmAB3zGeLNDScVOCw0qC14AzWmXdLieC1jUkfP--MRd1s411Qux3j_rTvFex30SdHvowN-VqA-i4BrOGPOayfwpz7hQ_rjRhpjqUVuRU3u6L4iBq3caJYr9J9H3BJWyAHXMSM4Bh23EBBCm-_DTNL1rV6VBSv7bqjhRot5lXM5xNXG6qohLhFyjrcbSJqJ_YqI5wySSje6CimLNm-zM4kKd6C_x15P7ynlYBjRL28uOS_vVuvldAkKH5Y_ys3Vqat8Q3VOw9giAkhRsqMMgvUcbiZlyyqIjVzBjgAvDUZ3hw","p":"5hDRKazLj34sVsExLtMwcUhTfHMAzDwP0de58rOBh5SQN4TwC-A_szs_tsu2XIcUHWoE2KzYdgtWfGkZ0S2W4pX81LJp4adMATo-fjcYYACOLWI_tQHP4WvE625cdm1rqGlAJgD5t_9o_kwMKEIfztLg-bEAavdejeiI_binUm8","q":"8X11Pj55m7rnINxj037lyN6J3fEZvVATO-d1qn_4uWHF9fJ0f1K2zzVQYsfy4FzzSSyefEJxP6cA2181FeoLRvTIKYhGkBX9JWL1soWQ5sX_RW0dnn3WNNXmC9RZDrSEnru4i9KDIIsMoUrJVHNXUqTgx7kAdeN5KTvEfiu4bd8","dp":"r6LHC3nPLYy1bMWwNn8jzFfa5HcndMOlkB2Q56gCiu7v6nKij25zMvFYgsSiQ6EbyhjV-lR6LCQbsn7KJtcXCYRXsElEa_C8JXPBobmN8jx6TktjN1xax0zu2I04KXD_b2JqhpjYC5ABJ6IG5fUVM1_qQLTQDNksZknPy2Lc2iE","dq":"tsi0JnHZUCNu8DOAp8PEH385sTDdv6pNdKkkKfKFC6RS1281-G1eC4aaGrqnPmV8i-Vm7DzKRVid0G3G25h0ArgijTUl28eY_WRi_kYUwGgbaKxHoAA1U3aXklqfMf825oLGE6c6MzasT6UwsGhBLz-3F9US4ShVO_2OI8Xp6dc","qi":"2NjZpOZjRzdxz0478wrdv-218qg0CKphjtjhQZw0l5Ft1o5nYTSYKrz69yfxD6mFLh5YTnGtYcwbIf54nc_EIBHqLrG0trxyo0cRdYfJPriPpRjPenqdeld--5EsQPdudtraJ7OHpDbVKYc-OMXGAQrCuKcnegDWUO7ovrnJU48"}