Ankündigung

Einklappen
Keine Ankündigung bisher.

Number-Werte an KNX-Bus senden (OH 3.1.0)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Number-Werte an KNX-Bus senden (OH 3.1.0)

    Moin,

    wie auch andere schon scheitere auch ich daran, einen Number-Wert (in diesem Fall 9.005 für Feuchtigkeit) an den Bus zu senden. Hat hier vielleicht noch jemand eine Idee, was der Grund sein könnte?

    Ich habe mir ein Minimalbeispiel gebaut:

    Channel:
    Code:
     - id: knx_0_2_1
    channelTypeUID: knx:number
    label: "Dachboden: Feuchtigkeit"
    description: ""
    configuration:
    ga: 9.007:0/2/1
    Item:
    2021-11-14_19-07.png
    2021-11-14_19-03.png

    Rule:
    Code:
    var value;
    
    function mathRandomInt(a, b) {
    if (a > b) {
    // Swap a and b to ensure a is smaller.
    var c = a;
    a = b;
    b = c;
    }
    return Math.floor(Math.random() * (b - a + 1) + a);
    }
    
    
    value = mathRandomInt(1, 100);
    events.sendCommand('GenericKNX_DachbodenFeuchtigke it', value);
    Wenn ich diese Regel nun aufrufe, sehe ich im OH-Logger, wie sich der Wert jedes mal ändert:

    Code:
    18:54:50.743 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'GenericKNX_DachbodenFeuchtigkeit' predicted to become 43
    18:55:04.396 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'GenericKNX_DachbodenFeuchtigkeit' predicted to become 60
    18:58:53.708 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'GenericKNX_DachbodenFeuchtigkeit' predicted to become 76
    Aber auf dem Bus kommt nichts an. Nicht einmal ein fehlerhafter Wert, der nicht zum Datentyp passt (was ich ja noch verstehen könnte), sondern gar nichts.

    Nachtrag: das senden von Boolean-Werten funktioniert einwandfrei.
    Zuletzt geändert von Cybso; 14.11.2021, 19:13.

    #2
    Ursache gefunden:

    https://github.com/openhab/openhab-addons/issues/10706

    Der KNX-Channel muss ohne jede Dimension als reines Number-Item angelegt werden, da offenbar keine Mappings für die Dimensions existieren.

    2021-11-15_09-54.png

    Um einen dimensionsbehafteten Wert eines anderen Items weiterzuleiten, muss man dann explizit eine Rule scripten:

    Code:
    var value = itemRegistry.getItem('OneCallAPIweatherandforecast_Humidity').getState();
    events.sendCommand('GenericKNX_HumidityOutdoor', value.doubleValue());
    Zuletzt geändert von Cybso; 15.11.2021, 09:55.

    Kommentar


      #3
      Das ist mir am Wochenende auch auf die Füße gefallen.
      Ich werde da mal ein Update für die Doku einreichen.

      Kommentar

      Lädt...
      X