Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. Keine smarte Geräte im iot Adapter

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Keine smarte Geräte im iot Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • TomT
      TomT last edited by

      Kann du im Reiter Smart Geräte über den PLUS Button oben auch keine Datenpunkte auswählen und damit das smarte Gerät selbst anlegen?
      So lege ich meine nämlich immer an, ich nutze Smart Aufzählungen nicht....

      Grüße
      Tom

      M 1 Reply Last reply Reply Quote 0
      • M
        markus-now @TomT last edited by

        @TomT Hallo TomT,
        manche kann ich anlegen aber nicht alle den markierten Datenpunkt ober kann ich z.B. nicht anlegen.
        Und damit ich andere anlegen kann, muss ich immer erst die Seite wechseln z. B. erst auf smarte Aufzählungen und dann wieder zurück auf smarte Geräte dann kommt erst das Fenster zum Hinzufügen.
        27.PNG

        1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer last edited by

          States vom Typ "button" sind nicht unterstützt soweit ich weiß. Du kannst dir aber behelfen, indem du den Typ änderst auf "switch". Dann kann man ihn zwar auch ausschalten, was nicht so viel Sinn ergibt, aber er geht einzubinden.

          M 1 Reply Last reply Reply Quote 0
          • M
            markus-now @AlCalzone last edited by

            @AlCalzone hallo AlCalzone,
            die states sollten normal automatisch gesetzt werde sind aus dem Script erstellt worden.

            // Program Ventilation Check
            /*

            • @author Moritz Heusinger moritz.heusinger@gmail.com
            • The program checks the absolute humidity of an inside room and outside.
            • If the difference is above a specified threshold, a ventilation recommendation
            • is set as state. The absolute humidity values are set as state too.
            • The script also contains a datapoint, which triggers speech output of the
            • last used Amazon Alexa device.
            • Require: Instance of Alexa2 Adapter
            • Create your rooms in the rooms array with a name and the states which contain the desired values.
            • Humidity Threshold is used to only give a ventilate claculation if outside absolute humidity - the
            • threshold is less than inside absolute humidity. Min Humidity is used to make sure that you only get a
            • ventilation recommendation, if the relative inside humidity is above the min value.
            • Also configure javascript instance if it differs from 0.
              */

            const logging = true;
            const javaScriptInstance = 0;
            const rooms = [
            {
            roomName: aufenthaltsraum,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A78225.1.HUMIDITY',/DG Aufenthaltsraum Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A78225.1.ACTUAL_TEMPERATURE',/DG Aufenthaltsraum Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /* YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: badezimmer,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A7817D.1.HUMIDITY',/OG Badezimmer Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A7817D.1.ACTUAL_TEMPERATURE',/OG Badezimmer Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: dgflur,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A7807D.1.HUMIDITY',/DG Flur Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A7807D.1.ACTUAL_TEMPERATURE',/DG Flur Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: gaestezimmer,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A7817F.1.HUMIDITY',/DG Gaestezimmer Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A7817F.1.ACTUAL_TEMPERATURE',/DG Gaestezimmer Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: katzenzimmer,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A7817B.1.HUMIDITY',/DG Katzenzimmer Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A7817B.1.ACTUAL_TEMPERATURE',/DG Katzenzimmer Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: kinderzimmer,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A78186.1.HUMIDITY',/OG Kinderzimmer Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A78186.1.ACTUAL_TEMPERATURE',/OG Kinderzimmer Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: ogflur,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A78188.1.HUMIDITY',/OG Flur Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A78188.1.ACTUAL_TEMPERATURE',/OG Flur Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            },
            {
            roomName: schlafzimmer,
            outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
            outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
            insideHumidityState: 'hm-rpc.0.000CD709A780AD.1.HUMIDITY',/OG Schlafzimmer Wandthermostat:1 HUMIDITY/
            insideTemperatureState: 'hm-rpc.0.000CD709A780AD.1.ACTUAL_TEMPERATURE',/OG Schlafzimmer Wandthermostat:1 ACTUAL TEMPERATURE/
            humidityThreshold: 2, /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT /
            minHumidity: 45 /
            YOU ARE ALLOWED TO CHANGE IF YOU WANT */
            }
            ];

            const triggersInsideHumidity = [];
            const triggersAlexa = [];

            for (const room of rooms) {
            createState(${room.roomName}.absoluteHumidity, {
            type: number,
            read: true,
            write: false,
            unit: g/m^3,
            name: ${room.roomName} Absolute Feuchtigkeit
            });

            createState(`${room.roomName}.outsideAbsoluteHumidity`, {
                type: `number`,
                read: true,
                write: false,
                unit: `g/m^3`,
                name: `${room.roomName} Absolute Feuchtigkeit Außen`
            });
            
            createState(`${room.roomName}.ventilationRecommendation`, {
                type: `boolean`,
                read: true,
                write: false,
                name: `${room.roomName} Lüftungsempfehlung`
            });
            
            createState(`${room.roomName}.alexaTriggerLuftfeuchtigkeit`, {
                type: `boolean`,
                read: true,
                write: true,
                role: `button`,
                name: `${room.roomName} Alexa Trigger Luftfeuchtigkeit`,
                smartName: {
                    de: `${room.roomName} Alexa Trigger Luftfeuchtigkeit`
                }
            });
            
            triggersAlexa.push(`javascript.${javaScriptInstance}.${room.roomName}.alexaTriggerLuftfeuchtigkeit`);
            triggersInsideHumidity.push(room.insideHumidityState);
            

            } // endFor

            on({id: triggersAlexa, change: any}, obj => {
            if (logging) log(Alexa ventilation check triggered, info);
            const room = rooms[triggersAlexa.indexOf(obj.id)];
            const ventilate = getState(${room.roomName}.ventilationRecommendation).val;
            const randomState = getRandomArbitrary(1, 2);
            let text;

            if(ventilate) {
                switch (randomState) {
                    case 1:
                        text = `Du solltest lüften, da es draußen trockener ist`;
                        break;
                    case 2:
                        text = `Lüfte, es ist so feucht hier drin`;
                        break;
                } // endSwitch
            } else {
                switch (randomState) {
                    case 1:
                        text = `Du solltest nicht lüften`;
                        break;
                    case 2:
                        text = `Bitte nicht lüften`;
                        break;
                } // endSwitch
            } // endElse
            
            // Get serial number of last used echo device, maybe timeout is unnecessary with new adapter version
            setTimeout(() => {
                const serialNumber = getState(`alexa2.0.History.serialNumber`).val;
                setState(`alexa2.0.Echo-Devices.${serialNumber}.Commands.speak`, text, false);
            }, 300);
            

            });

            on({id: triggersInsideHumidity, change: any}, obj => {
            const room = rooms[triggersInsideHumidity.indexOf(obj.id)];
            // Get inside and outside humidity and temperature
            const relHumidityOutdside = getState(room.outsideHumidityState).val;
            const temperatureOutside = getState(room.outsideTemperatureState).val;
            const relHumidityInside = getState(room.insideHumidityState).val;
            const temperatureInside = getState(room.insideTemperatureState).val;
            // Calc ventilation recommendation and absolute humidity inside and outside
            const jsonRes = ventilateRoom(relHumidityInside, temperatureInside, relHumidityOutdside,
            temperatureOutside, room.humidityThreshold, room.minHumidity);
            // Set states
            setState(${room.roomName}.absoluteHumidity, jsonRes.insideAbsoluteHumidity, true);
            setState(${room.roomName}.outsideAbsoluteHumidity, jsonRes.outsideAbsoluteHumidity, true);
            setState(${room.roomName}.ventilationRecommendation, jsonRes.ventilate, true);
            });

            /* Internals */

            function calcAbsoluteHumidity(relHumidity, temperature) {
            const res = ((6.112 * Math.pow(Math.E, ((17.67 * temperature) / (temperature + 243.5))) * relHumidity * 2.1674)) / (273.15 + temperature);
            return Math.round(res * 100) / 100;
            } // endCalcAbsoluteHumidity

            function ventilateRoom(relHumidityInside, tempInside, relHumidityOutside, tempOutside,
            threshold=2.0, minHumidity=50.0) {
            const res = {};
            res.insideAbsoluteHumidity = calcAbsoluteHumidity(relHumidityInside, tempInside);
            res.outsideAbsoluteHumidity = calcAbsoluteHumidity(relHumidityOutside, tempOutside);
            res.diff = Math.round((res.insideAbsoluteHumidity - res.outsideAbsoluteHumidity) * 100) / 100;

            if (res.diff > threshold && relHumidityInside > minHumidity)
                res.ventilate = true;
            else 
                res.ventilate = false;
            return res;
            

            } // endVentilateRoom

            function getRandomArbitrary(min, max) {
            return Math.round(Math.random() * ((max + 0.4) - (min - 0.4)) + (min - 0.4));
            } // endGetRandomArbitrary

            1 Reply Last reply Reply Quote 0
            • M
              markus-now last edited by

              hier sieht man auch im iot Blog, das das Anlegen eigentlich funktioniert.100.PNG
              101.PNG
              Link Text

              Wie gesagt sollte eigentlich alles in dem Skript passieren, aber manuell kann ich sie auch nicht anlegen.

              1 Reply Last reply Reply Quote 0
              • M
                markus-now last edited by

                Hat keiner eine Idee, ich suche mich dumm und dusselig.

                dslraser 1 Reply Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @markus-now last edited by

                  @markus-now
                  ich hatte mal ein ähnliches Problem.
                  Beim Datenpunkt erstellen mit write auf true ging das einfügen. Das habe ich dann hinterher wieder auf false geändert.

                  Dein Script im Spoiler ist irgendwie nicht richtig in Code Tag eingepackt...

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    markus-now @dslraser last edited by

                    @dslraser Danke für die Info, ich sitze schon 14 h an der Maschine muss abbrechen, aber wie kann ich den Code richtig einfügen. Melde mich morgen nochmal.
                    // Program Ventilation Check
                    /*

                    • @author Moritz Heusinger moritz.heusinger@gmail.com
                    • The program checks the absolute humidity of an inside room and outside.
                    • If the difference is above a specified threshold, a ventilation recommendation
                    • is set as state. The absolute humidity values are set as state too.
                    • The script also contains a datapoint, which triggers speech output of the
                    • last used Amazon Alexa device.
                    • Require: Instance of Alexa2 Adapter
                    • Create your rooms in the rooms array with a name and the states which contain the desired values.
                    • Humidity Threshold is used to only give a ventilate claculation if outside absolute humidity - the
                    • threshold is less than inside absolute humidity. Min Humidity is used to make sure that you only get a
                    • ventilation recommendation, if the relative inside humidity is above the min value.
                    • Also configure javascript instance if it differs from 0.
                      */

                    const logging = true;
                    const javaScriptInstance = 0;
                    const rooms = [
                    {
                    roomName: aufenthaltsraum,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A78225.1.HUMIDITY',/DG Aufenthaltsraum Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A78225.1.ACTUAL_TEMPERATURE',/DG Aufenthaltsraum Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /* YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: badezimmer,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A7817D.1.HUMIDITY',/OG Badezimmer Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A7817D.1.ACTUAL_TEMPERATURE',/OG Badezimmer Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: dgflur,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A7807D.1.HUMIDITY',/DG Flur Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A7807D.1.ACTUAL_TEMPERATURE',/DG Flur Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: gaestezimmer,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A7817F.1.HUMIDITY',/DG Gaestezimmer Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A7817F.1.ACTUAL_TEMPERATURE',/DG Gaestezimmer Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: katzenzimmer,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A7817B.1.HUMIDITY',/DG Katzenzimmer Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A7817B.1.ACTUAL_TEMPERATURE',/DG Katzenzimmer Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: kinderzimmer,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A78186.1.HUMIDITY',/OG Kinderzimmer Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A78186.1.ACTUAL_TEMPERATURE',/OG Kinderzimmer Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: ogflur,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A78188.1.HUMIDITY',/OG Flur Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A78188.1.ACTUAL_TEMPERATURE',/OG Flur Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    },
                    {
                    roomName: schlafzimmer,
                    outsideHumidityState: 'hm-rpc.0.000ED8A9A28112.1.HUMIDITY',/Garten Temperatursensor:1 HUMIDITY/
                    outsideTemperatureState: 'hm-rpc.0.000ED8A9A28112.1.ACTUAL_TEMPERATURE',/Garten Temperatursensor:1 ACTUAL TEMPERATURE/
                    insideHumidityState: 'hm-rpc.0.000CD709A780AD.1.HUMIDITY',/OG Schlafzimmer Wandthermostat:1 HUMIDITY/
                    insideTemperatureState: 'hm-rpc.0.000CD709A780AD.1.ACTUAL_TEMPERATURE',/OG Schlafzimmer Wandthermostat:1 ACTUAL TEMPERATURE/
                    humidityThreshold: 2, /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT /
                    minHumidity: 45 /
                    YOU ARE ALLOWED TO CHANGE IF YOU WANT */
                    }
                    ];

                    const triggersInsideHumidity = [];
                    const triggersAlexa = [];

                    for (const room of rooms) {
                    createState(${room.roomName}.absoluteHumidity, {
                    type: number,
                    read: true,
                    write: false,
                    unit: g/m^3,
                    name: ${room.roomName} Absolute Feuchtigkeit
                    });

                    createState(`${room.roomName}.outsideAbsoluteHumidity`, {
                        type: `number`,
                        read: true,
                        write: false,
                        unit: `g/m^3`,
                        name: `${room.roomName} Absolute Feuchtigkeit Außen`
                    });
                    
                    createState(`${room.roomName}.ventilationRecommendation`, {
                        type: `boolean`,
                        read: true,
                        write: false,
                        name: `${room.roomName} Lüftungsempfehlung`
                    });
                    
                    createState(`${room.roomName}.alexaTriggerLuftfeuchtigkeit`, {
                        type: `boolean`,
                        read: true,
                        write: true,
                        role: `button`,
                        name: `${room.roomName} Alexa Trigger Luftfeuchtigkeit`,
                        smartName: {
                            de: `${room.roomName} Alexa Trigger Luftfeuchtigkeit`
                        }
                    });
                    
                    triggersAlexa.push(`javascript.${javaScriptInstance}.${room.roomName}.alexaTriggerLuftfeuchtigkeit`);
                    triggersInsideHumidity.push(room.insideHumidityState);
                    

                    } // endFor

                    on({id: triggersAlexa, change: any}, obj => {
                    if (logging) log(Alexa ventilation check triggered, info);
                    const room = rooms[triggersAlexa.indexOf(obj.id)];
                    const ventilate = getState(${room.roomName}.ventilationRecommendation).val;
                    const randomState = getRandomArbitrary(1, 2);
                    let text;

                    if(ventilate) {
                        switch (randomState) {
                            case 1:
                                text = `Du solltest lüften, da es draußen trockener ist`;
                                break;
                            case 2:
                                text = `Lüfte, es ist so feucht hier drin`;
                                break;
                        } // endSwitch
                    } else {
                        switch (randomState) {
                            case 1:
                                text = `Du solltest nicht lüften`;
                                break;
                            case 2:
                                text = `Bitte nicht lüften`;
                                break;
                        } // endSwitch
                    } // endElse
                    
                    // Get serial number of last used echo device, maybe timeout is unnecessary with new adapter version
                    setTimeout(() => {
                        const serialNumber = getState(`alexa2.0.History.serialNumber`).val;
                        setState(`alexa2.0.Echo-Devices.${serialNumber}.Commands.speak`, text, false);
                    }, 300);
                    

                    });

                    on({id: triggersInsideHumidity, change: any}, obj => {
                    const room = rooms[triggersInsideHumidity.indexOf(obj.id)];
                    // Get inside and outside humidity and temperature
                    const relHumidityOutdside = getState(room.outsideHumidityState).val;
                    const temperatureOutside = getState(room.outsideTemperatureState).val;
                    const relHumidityInside = getState(room.insideHumidityState).val;
                    const temperatureInside = getState(room.insideTemperatureState).val;
                    // Calc ventilation recommendation and absolute humidity inside and outside
                    const jsonRes = ventilateRoom(relHumidityInside, temperatureInside, relHumidityOutdside,
                    temperatureOutside, room.humidityThreshold, room.minHumidity);
                    // Set states
                    setState(${room.roomName}.absoluteHumidity, jsonRes.insideAbsoluteHumidity, true);
                    setState(${room.roomName}.outsideAbsoluteHumidity, jsonRes.outsideAbsoluteHumidity, true);
                    setState(${room.roomName}.ventilationRecommendation, jsonRes.ventilate, true);
                    });

                    /* Internals */

                    function calcAbsoluteHumidity(relHumidity, temperature) {
                    const res = ((6.112 * Math.pow(Math.E, ((17.67 * temperature) / (temperature + 243.5))) * relHumidity * 2.1674)) / (273.15 + temperature);
                    return Math.round(res * 100) / 100;
                    } // endCalcAbsoluteHumidity

                    function ventilateRoom(relHumidityInside, tempInside, relHumidityOutside, tempOutside,
                    threshold=2.0, minHumidity=50.0) {
                    const res = {};
                    res.insideAbsoluteHumidity = calcAbsoluteHumidity(relHumidityInside, tempInside);
                    res.outsideAbsoluteHumidity = calcAbsoluteHumidity(relHumidityOutside, tempOutside);
                    res.diff = Math.round((res.insideAbsoluteHumidity - res.outsideAbsoluteHumidity) * 100) / 100;

                    if (res.diff > threshold && relHumidityInside > minHumidity)
                        res.ventilate = true;
                    else 
                        res.ventilate = false;
                    return res;
                    

                    } // endVentilateRoom

                    function getRandomArbitrary(min, max) {
                    return Math.round(Math.random() * ((max + 0.4) - (min - 0.4)) + (min - 0.4));
                    } // endGetRandomArbitrary

                    dslraser 1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @markus-now last edited by

                      @markus-now

                      es gab auch schon andere Beiträge hier im Forum, ist aber schon länger her. Ich suche noch einen bestimmten, den finde ich aber gerade nicht.
                      Hier ein ähnliches Problem mit Lösungsansatz.

                      https://forum.iobroker.net/post/149413

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        markus-now @dslraser last edited by

                        @dslraser
                        okay Danke.
                        Hört sich gut an, werde ich heute Nachmittag wenn ich nach Hause komme gleich mal versuchen.

                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @markus-now last edited by

                          @markus-now

                          1 und 2 funktioniert (A und AA) und 3 und 4 (AAA und AAAA) nicht

                          //Datenpunkt erstellen
                          createState("1", {
                              name: '1', 
                              role: 'button',
                              type: 'boolean', 
                              read:  true, 
                              write: true,
                              "smartName": {
                              "de": "A",
                              "smartType": "SWITCH"
                          }
                          });
                          
                          //Datenpunkt erstellen
                          createState("2", {
                              name: '2', 
                              role: 'button',
                              type: 'boolean', 
                              read:  false, 
                              write: true,
                              "smartName": {
                              "de": "AA",
                              "smartType": "SWITCH"
                          }
                          });
                          //Datenpunkt erstellen
                          createState("3", {
                              name: '3', 
                              role: 'button',
                              type: 'boolean', 
                              read:  false, 
                              write: false,
                              "smartName": {
                              "de": "AAA",
                              "smartType": "SWITCH"
                          }
                          });
                          //Datenpunkt erstellen
                          createState("4", {
                              name: '4', 
                              role: 'button',
                              type: 'boolean', 
                              read:  true, 
                              write: false,
                              "smartName": {
                              "de": "AAAA",
                              "smartType": "SWITCH"
                          }
                          });
                          

                          Ergebnis:

                          Bildschirmfoto 2019-05-16 um 09.06.42.png

                          Bildschirmfoto 2019-05-16 um 09.07.24.png

                          AlCalzone M 2 Replies Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer @dslraser last edited by

                            @dslraser Macht Sinn. Ein Button, der nicht beschreibbar ist, hat keine Funktion.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              markus-now @dslraser last edited by

                              @dslraser
                              Ich habe seit gestern vieles versucht Test Butten angelegt (nur lesen, nur schreiben und und und).
                              Ich blicke überhaupt nicht mehr durch, wo ich noch ansetzen kann.
                              00000.PNG
                              1111111.PNG

                              Hatte vorher immer funktioniert, wo ich noch den Cloud Adapter hatte.
                              Ist da irgendetwas mit den Adaptern?
                              Hat vorhin nämlich auch noch irgendwie einen hm-rpc.3 Adapter im Hintergrund laufen.
                              Den hatte ich mal testweise mal installiert und wieder gelöscht trotzdem hatte er mir in der Objektübersicht immer wieder den Ordner .3 erstellt.
                              Hate den Adapter dann über das terminal gelöscht und alles war gut.
                              Lange rede kurzer Sinn was ich damit sagen will ist, habe ich eventuell Probleme mit meinem System allgemein.

                              Ich hatte vorher auch keine Probleme mit den smarten Aufzählungen die jetzt auch nicht mehr auftauchen.

                              1 Reply Last reply Reply Quote 0
                              • D
                                dornkaat last edited by

                                Moin,
                                ich bin auch "dummerweise" auf den iot adapter umgestiegen, weil es heisst der ALEXA Adapter wird abgeschaltet.
                                Ich konnte vorher mit Alexa prima meinen Rasenmäher Starten und Stoppen , was nun nicht mehr funzt .
                                Hab ich was faslch gemacht ? Der adapter hat die smartgeräte gefunden , muss ich deie anderen 2 adapter Alexa und den Cloudapadter löschen ??
                                Dann läuft auch bmein e Rufnummern ansage mit Alexa nicht mehr ...
                                Seufz

                                LG Dornkaat

                                dslraser 1 Reply Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @dornkaat last edited by dslraser

                                  @dornkaat
                                  Wo hast Du diese Info her ? Alexa2 Adapter hat nichts mit cloud/iot Adapter zu tun und wird auch nicht abgeschaltet.

                                  Du meinst sicherlich den Cloud Adapter. Dieser soll zukünftig durch iot ersetzt werden. Dazu gibt es im Forum reichlich Info und auch Anleitungen.

                                  https://forum.iobroker.net/topic/18517/anleitung-iot-pro-cloud-assistenten-service-iobroker-iot-reloaded-alexa-und-services

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dornkaat last edited by

                                    ok > du hast recht ich habe mich schlecht ausgedrückt .... es stellt sich mir die Frage ob ich zb. alles was unter dem Alexa 2.0 adapter eingestellt ist auch weiterhin funktioniert .... ? Den der Adater ist seit der Einrichtung des IOT gelb und im log meckert der IOB , dass die Credentials nicht richtig sind, obwohl ich nix verändert habe , iss dat normal ?

                                    Achso danke für deine Antwirt/Hinweis 🙂
                                    lg dornkaat

                                    dslraser 1 Reply Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @dornkaat last edited by

                                      @dornkaat
                                      ich habe oben noch einen Link eingefügt.

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        dornkaat @dslraser last edited by

                                        @dslraser danke hatte ich übersehen ...
                                        doch stellt sich die freage weiterhin,wieso er den alexa 2 adp nicht grünmacht ??
                                        hast du ne ahnung .. die credentials habe ich wie gesagt nicht verändert

                                        dabke
                                        d.

                                        dslraser 1 Reply Last reply Reply Quote 0
                                        • dslraser
                                          dslraser Forum Testing Most Active @dornkaat last edited by

                                          @dornkaat
                                          welche Version vom Alexa2 Adapter ?

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            dornkaat last edited by

                                            version 2.2.0 ist drauf

                                            dslraser 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            850
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            iot
                                            5
                                            24
                                            1492
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo