Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Projekt] Integr. Cubinote - Alexa Sprache drucken - Listen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    505

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

[Projekt] Integr. Cubinote - Alexa Sprache drucken - Listen

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
65 Beiträge 8 Kommentatoren 10.1k Aufrufe 12 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    mcchickents
    schrieb am zuletzt editiert von
    #7

    Hallo zusammen,

    sehr interresantes Projket. Ich glaube nur das die umsetztung so für den ein oder andern anwender mich eingeschlossen noch etwas kompliziert ist. Wäre es möglich das man hier einen Adapter programiert der den hauptaufwand abnimmt?

    Gruss Julian

    1 Antwort Letzte Antwort
    0
    • Sebastian IOS Sebastian IO

      @agria4800 guten morgen und frohe ostern nachträglich!
      Wie fit bist du mit javascript?
      Ich kann hier einige Scripte bezüglich binding und print posten, aber die müsstest du dann noch an deine bedürfnisse anpassen!

      Agria4800A Offline
      Agria4800A Offline
      Agria4800
      schrieb am zuletzt editiert von
      #8

      @sebastian-io : frohe Ostern auch dir 😀 Poste mal deine scripte, ich schaue sie mir dann an und melde mich bei fragen. Ich bin kein Experte, habe aber einige laufen. Melde mich später nochmal

      Danke dir schon mal im Voraus :+1:

      Agria4800A 1 Antwort Letzte Antwort
      0
      • Agria4800A Agria4800

        @sebastian-io : frohe Ostern auch dir 😀 Poste mal deine scripte, ich schaue sie mir dann an und melde mich bei fragen. Ich bin kein Experte, habe aber einige laufen. Melde mich später nochmal

        Danke dir schon mal im Voraus :+1:

        Agria4800A Offline
        Agria4800A Offline
        Agria4800
        schrieb am zuletzt editiert von
        #9

        @sebastian-io: Das ist der aktuelle Stand:
        // http://api.cubinote.com/home/....

        Folgende Daten habe ich ich besher ausgelesen / erhalten

        // APP ID: XXX
        // Access Key AK: XXXX
        // Device ID: XXXX
        // Cubinote ID: XXXX
        // App name: Samrt Cubinote
        // Developer: Oma Ella
        // Verification Code: xxxx
        // Bind ID:xxxx
        // useridentifying: xxx
        // printcontentid": xxx
        

        in der pdf scheinen noch kleine fehler zu sein, bei den beiden gab´s noch Probelme:
        --> Punkt 5. {"showapi_res_code":1,"showapi_res_error":"ok","showapi_bindlist":"{"ds":[]}"}
        --> Punkt 10 {"showapi_res_code":0,"showapi_res_error":"pic change error"}

        Hattest du bei den beiden Punkten auch Probleme ?

        Wie schaffe ich es, einen beliebigen Text per http Befehl zu senden ?

        Sebastian IOS 1 Antwort Letzte Antwort
        0
        • Agria4800A Agria4800

          @sebastian-io: Das ist der aktuelle Stand:
          // http://api.cubinote.com/home/....

          Folgende Daten habe ich ich besher ausgelesen / erhalten

          // APP ID: XXX
          // Access Key AK: XXXX
          // Device ID: XXXX
          // Cubinote ID: XXXX
          // App name: Samrt Cubinote
          // Developer: Oma Ella
          // Verification Code: xxxx
          // Bind ID:xxxx
          // useridentifying: xxx
          // printcontentid": xxx
          

          in der pdf scheinen noch kleine fehler zu sein, bei den beiden gab´s noch Probelme:
          --> Punkt 5. {"showapi_res_code":1,"showapi_res_error":"ok","showapi_bindlist":"{"ds":[]}"}
          --> Punkt 10 {"showapi_res_code":0,"showapi_res_error":"pic change error"}

          Hattest du bei den beiden Punkten auch Probleme ?

          Wie schaffe ich es, einen beliebigen Text per http Befehl zu senden ?

          Sebastian IOS Offline
          Sebastian IOS Offline
          Sebastian IO
          schrieb am zuletzt editiert von
          #10

          @agria4800 guten morgen,

          ich poste meine Scripte die ich verwende, ich arbeite auch mit alexa als sprachausgabe, sprich du musst dann ein Gerät hinterlegen, dort wird dann die Sprachausgabe erfolgen.

          Ich poste dir auch ein Script mit createState, dort werden alle wichtigen Datenpunkte angelegt, diese brauchst du nur einmal ausführen zum anlegen, danach kannst du das Script wieder ausschalten.

          Script createStatesCubinote (dementsprechend deine Zugangsdaten hinterlegen, bevor das Script ausgeführt wird):

          
          createState('0_userdata.0.cubinote.apiurl','http://api.cubinote.com/home/',{name:'Api url for requests',type:"string",role:"value"});
          createState('0_userdata.0.cubinote.appid','YOUR APP ID',{name:'AppID',type:"string",role:"value"});
          createState('0_userdata.0.cubinote.accesskey','YOUR ACCESSTOKEN',{name:'Access Key',type:"string",role:"value"});
          createState('0_userdata.0.cubinote.deviceid','YOUR DEVICEID',{name:'Id of cubinote printer',type:"string",role:"value"});
          createState('0_userdata.0.cubinote.bindid','YOUR BINDID',{name:'Id of cubinote Binding id',type:"string",role:"value"});
          createState('0_userdata.0.cubinote.userid','YOUR USERID',{name:'Username account',type:"string",role:"value"});
          
          createState('0_userdata.0.cubinote.actionStates.print_shoppinglist_state',false,{name:'Shopping List state',type:"boolean",role:"switch"});
          createState('0_userdata.0.cubinote.actionStates.print_todolist_state',false,{name:'Todo List state',type:"boolean",role:"switch"});
          createState('0_userdata.0.cubinote.actionStates.read_cubinotestatus_state',false,{name:'Cubinote Status state',type:"boolean",role:"switch"});
          createState('0_userdata.0.cubinote.actionStates.write_binding_state',false,{name:'Write binding state',type:"boolean",role:"button"});
          createState('0_userdata.0.cubinote.actionStates.check_binding_state',false,{name:'Check binding state',type:"boolean",role:"switch"});
          

          write & check binding state script:

          Bei echodevice deinen Echo hinterlegen, nun kannst du mit den Datenpunkten
          0_userdata.0.cubinote.actionStates.write_binding_state (einmal auf true setzen) deine binding id bekommen, diese wird dann in den definierten Datenpunkt geschrieben.

          0_userdata.0.cubinote.actionStates.check_binding_state (einmal auf true setzen) hier bekommst du dann eine Sprachausgabe ob die Verbindung erfolgreich war. Beide Datenpunkte brauchst du nur einmal ausführen, letztlich brauchen wir ja nur die bindid.

          const moment = require('moment');
          var aApiSettings = {
              //Echo fuer Sprachausgabe
              'echodevice': 'YOUR ECHO DEVICE',
              'url': getState("0_userdata.0.cubinote.apiurl").val,
              'action': {
                  'print': 'printpaper',
                  'devicestatus': 'getdeviceinfo',
                  'printstatus': 'getprintstat',
                  'requestbind': 'requestbind',
                  'requestbindstatus': 'getbindrequeststatus',
                  'verifybind': 'verifybind',
              },
              'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
              'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
              'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
              'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
              'userid': '&useridentifying=' + getState("0_userdata.0.cubinote.userid").val,
              'liststates': {
                  '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                  '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
              }
          }
          //check binding state
          on({ id: '0_userdata.0.cubinote.actionStates.check_binding_state', val: true }, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              moment.locale('de');         // de
              var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
              var sTimestamp = '&timestamp=' + TimeStamp;
              var apiUrl = aApiSettings.url + aApiSettings.action.requestbindstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
              const request = require('request');
              request({ 'uri': apiUrl }, function (error, response, json) {
                  if (!error && response.statusCode === 200) {
                      var aReturn = JSON.parse(json);
                      if (aReturn.showapi_res_code == 1) {
                          //Alexa Sprachausgabe
                          setState(aApiSettings.echodevice + ".Commands.speak", '50; Verbindungsstatus erfolgreich');
          
                      }
                      if (aReturn.showapi_res_code != 1) {
                          //Alexa Sprachausgabe
                          setState(aApiSettings.echodevice + ".Commands.speak", '50; Verbindungsstatus nicht erfolgreich');
          
                      }
                  }
              });
              //reset check binding state after 2 seconds
              setStateDelayed('0_userdata.0.cubinote.actionStates.check_binding_state', false, 2000, false);
          
          });
          
          on({ id: '0_userdata.0.cubinote.actionStates.write_binding_state', val: true }, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              moment.locale('de');         // de
              var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
              var sTimestamp = '&timestamp=' + TimeStamp;
              var apiUrl = aApiSettings.url + aApiSettings.action.requestbind + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.userid;
              //console.log(apiUrl);
              const request = require('request');
              request({ 'uri': apiUrl }, function (error, response, json) {
                  if (!error && response.statusCode === 200) {
                      var aReturn = JSON.parse(json);
                      //{"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":301,"showapi_bindid":807712}
                      if (aReturn.showapi_res_code == 1) {
                          setState("0_userdata.0.cubinote.bindid", aReturn.showapi_bindid);
                          setState(aApiSettings.echodevice + ".Commands.speak", '50; Verbindung erfolgreich');
                          var verificationUrl = aApiSettings.url + aApiSettings.action.verifybind + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid;
                          verificationUrl += '&bindID=' + aReturn.showapi_bindid + '&verifyCode=CODE&enablePush=0';
                          //console.log(verificationUrl);
                      }
          
                  }
              });
          });
          

          Script für Cubinote Status abfragen:
          0_userdata.0.cubinote.actionStates.read_cubinotestatus_state (einmal auf true setzen) hier wird der Status des Cubinotes abgefragt und eine Sprachausgabe erzeugt. (0-out of paper and overtemperature; 1-overtemperature; 2-out of paper; 3-normal)

          const moment = require('moment');
          var aApiSettings = {
              //Echo Gerät für Sprachausgabe
              'echodevice': 'YOUR ALEXA ECHO DEVICE',
              'url': getState("0_userdata.0.cubinote.apiurl").val,
              'action': {
                  'print': 'printpaper',
                  'devicestatus': 'getdeviceinfo',
                  'printstatus': 'getprintstat',
                  'requestbind': 'requestbind',
                  'requestbindstatus': 'getbindrequeststatus'
              },
              'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
              'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
              'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
              'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
              'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
              'liststates': {
                  '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                  '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
              }
          }
          
          //check cubinote state
          on({ id: '0_userdata.0.cubinote.actionStates.read_cubinotestatus_state', val: true }, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
          
             var outputDevice = aApiSettings.echodevice;
              
              moment.locale('de');         // de
              var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
              var sTimestamp = '&timestamp=' + TimeStamp;
              var apiUrl = aApiSettings.url + aApiSettings.action.devicestatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
          
              const request = require('request');
              request({ 'uri': apiUrl }, function (error, response, json) {
                  if (!error && response.statusCode === 200) {
                      //{"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":601,"showapi_state":1,"showapi_isOnline":1 }
                     var aReturn = JSON.parse(json);
                     //console.log(aReturn);
                      if (aReturn.showapi_res_code == 1) {
                          // console.log(aReturn);
                          if (aReturn.showapi_isOnline == 1) {
                              //0-out of paper and overtemperature; 1-overtemperature; 2-out of paper; 3-normal
                              var msg = '';
                              if (aReturn.showapi_state == 1) {
                                  msg = ' und überhitzt.';
                              }
                              if (aReturn.showapi_state == 2) {
                                  msg = ' und hat kein Papier mehr.';
                              }
                              if (aReturn.showapi_state == 3) {
                                  msg = ' und der Status ist normal.';
                              }
                              setState(outputDevice + ".Commands.speak", '50; Cubinot ist online'+msg);
                          }
                          if (aReturn.showapi_isOnline == 0) {
                              setState(outputDevice + ".Commands.speak", '50; Cubinot ist offline');
                          }
                      }
                  }
              });
          
          
              setStateDelayed('0_userdata.0.cubinote.actionStates.read_cubinotestatus_state', false, 2000, false);
          });
          
          

          Hier nun das Script für Ausdruck der alexa shopping liste und todo liste:
          0_userdata.0.cubinote.actionStates.print_shoppinglist_state (Wert auf true setzen) druckt die Alexa Einkaufsliste
          0_userdata.0.cubinote.actionStates.print_todolist_state (Wert auf true setzen) druckt die Alexa Todoliste

          
          const moment = require('moment');
          const fs = require('fs');
          
          var aApiSettings = {
              //Echo Gerät für Sprachausgabe
              'echodevice': 'YOUR ECHO DEVICE',
              'url': getState("0_userdata.0.cubinote.apiurl").val,
              'action': {
                  'print': 'printpaper',
                  'devicestatus': 'getdeviceinfo',
                  'printstatus': 'getprintstat',
                  'requestbind': 'requestbind',
                  'requestbindstatus': 'getbindrequeststatus'     
              },
              'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
              'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
              'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
              'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
              'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
              'liststates': {
                  '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                  '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
              }
          }
          
          /**Print States */
          for (const [state, list] of Object.entries(aApiSettings.liststates)) {
          
              on({ id: state, val: true }, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
          
                  moment.locale('de');         // de
                  var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                  var sTimestamp = '&timestamp=' + TimeStamp;
                  var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                  apiUrl += '&printcontent=T:';
          
          
                  var aLists = JSON.parse(getState(list).val);
                  var printList = '';
                  var TimeStampList = moment().format('DD.MM.YYYY HH:mm');
                  if(list == 'alexa2.0.Lists.SHOPPING_LIST.json'){
                      printList = 'Einkaufsliste '+TimeStampList+'\n\r';
                      printList += '================================\n\n\r';
                  }
                  if(list == 'alexa2.0.Lists.TO_DO.json'){
                      printList = 'TODO Liste '+TimeStampList+'\n\r';
                      printList += '================================\n\n\r';
                  }
                   printList += aLists.map(function (val) {
                      var item = val.value
                      item = item[0].toUpperCase() + item.substring(1);
                      return (val.completed ? '[X] ' : '[ ] ') + item;
                  }).join('\n\n\r');
                 
                //es sind keine Umlaute zulässig somit müssen diese ersetzt werden
                  printList = printList.replace(/Ä/g, 'Ae');
                  printList = printList.replace(/ä/g, 'ae');
                  printList = printList.replace(/Ö/g, 'Oe');
                  printList = printList.replace(/ö/g, 'oe');
                  printList = printList.replace(/Ü/g, 'Ue');
                  printList = printList.replace(/ü/g, 'ue');
                  printList = printList.replace(/ß/g, 'ss');
          
                  var base64 = new Buffer(printList).toString('base64');
          
                  apiUrl += base64;
                
                  //console.log(apiUrl);
                  const request = require('request');
                  request({ 'uri': apiUrl}, function (error, response, json) {
                      if (!error && response.statusCode === 200) {
          
                          var aReturn = JSON.parse(json);
                          //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                          if (aReturn.result == 2) {
                              var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                              statusUrl += '&printcontentid=' + aReturn.printcontentid;
          
                              request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                  //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                  var outputDevice = aApiSettings.echodevice;
                                  
                                  setState(outputDevice + ".Commands.speak", '50; Drucken Liste erfolgreich');
              
                              });
          
                          }
          
                      }
                  });
          
                  setStateDelayed(state, false, 2000, false);
              });
          }
          
          

          Die actionstates wurden alle als switch definiert die sich nach 2 Sekunden wieder automatisch auf false setzen, ich habe diese so gewählt, da man dann in den Alexa Routinen einfacher Sprachbefehle definieren kann. Sprich jeder action state wurde so angelegt dass man mit alexa routinen einfach und schnell sprachbefehle erzeugen kann im Zusammenspiel mit iot.

          iot-cubinote.png

          Ich denke nun hast du alles dass du auch weiter damit experementieren kannst.
          Ich wünsche Dir viel Spaß.

          Agria4800A M 2 Antworten Letzte Antwort
          1
          • Sebastian IOS Sebastian IO

            @agria4800 guten morgen,

            ich poste meine Scripte die ich verwende, ich arbeite auch mit alexa als sprachausgabe, sprich du musst dann ein Gerät hinterlegen, dort wird dann die Sprachausgabe erfolgen.

            Ich poste dir auch ein Script mit createState, dort werden alle wichtigen Datenpunkte angelegt, diese brauchst du nur einmal ausführen zum anlegen, danach kannst du das Script wieder ausschalten.

            Script createStatesCubinote (dementsprechend deine Zugangsdaten hinterlegen, bevor das Script ausgeführt wird):

            
            createState('0_userdata.0.cubinote.apiurl','http://api.cubinote.com/home/',{name:'Api url for requests',type:"string",role:"value"});
            createState('0_userdata.0.cubinote.appid','YOUR APP ID',{name:'AppID',type:"string",role:"value"});
            createState('0_userdata.0.cubinote.accesskey','YOUR ACCESSTOKEN',{name:'Access Key',type:"string",role:"value"});
            createState('0_userdata.0.cubinote.deviceid','YOUR DEVICEID',{name:'Id of cubinote printer',type:"string",role:"value"});
            createState('0_userdata.0.cubinote.bindid','YOUR BINDID',{name:'Id of cubinote Binding id',type:"string",role:"value"});
            createState('0_userdata.0.cubinote.userid','YOUR USERID',{name:'Username account',type:"string",role:"value"});
            
            createState('0_userdata.0.cubinote.actionStates.print_shoppinglist_state',false,{name:'Shopping List state',type:"boolean",role:"switch"});
            createState('0_userdata.0.cubinote.actionStates.print_todolist_state',false,{name:'Todo List state',type:"boolean",role:"switch"});
            createState('0_userdata.0.cubinote.actionStates.read_cubinotestatus_state',false,{name:'Cubinote Status state',type:"boolean",role:"switch"});
            createState('0_userdata.0.cubinote.actionStates.write_binding_state',false,{name:'Write binding state',type:"boolean",role:"button"});
            createState('0_userdata.0.cubinote.actionStates.check_binding_state',false,{name:'Check binding state',type:"boolean",role:"switch"});
            

            write & check binding state script:

            Bei echodevice deinen Echo hinterlegen, nun kannst du mit den Datenpunkten
            0_userdata.0.cubinote.actionStates.write_binding_state (einmal auf true setzen) deine binding id bekommen, diese wird dann in den definierten Datenpunkt geschrieben.

            0_userdata.0.cubinote.actionStates.check_binding_state (einmal auf true setzen) hier bekommst du dann eine Sprachausgabe ob die Verbindung erfolgreich war. Beide Datenpunkte brauchst du nur einmal ausführen, letztlich brauchen wir ja nur die bindid.

            const moment = require('moment');
            var aApiSettings = {
                //Echo fuer Sprachausgabe
                'echodevice': 'YOUR ECHO DEVICE',
                'url': getState("0_userdata.0.cubinote.apiurl").val,
                'action': {
                    'print': 'printpaper',
                    'devicestatus': 'getdeviceinfo',
                    'printstatus': 'getprintstat',
                    'requestbind': 'requestbind',
                    'requestbindstatus': 'getbindrequeststatus',
                    'verifybind': 'verifybind',
                },
                'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                'userid': '&useridentifying=' + getState("0_userdata.0.cubinote.userid").val,
                'liststates': {
                    '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                    '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                }
            }
            //check binding state
            on({ id: '0_userdata.0.cubinote.actionStates.check_binding_state', val: true }, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                moment.locale('de');         // de
                var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                var sTimestamp = '&timestamp=' + TimeStamp;
                var apiUrl = aApiSettings.url + aApiSettings.action.requestbindstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                const request = require('request');
                request({ 'uri': apiUrl }, function (error, response, json) {
                    if (!error && response.statusCode === 200) {
                        var aReturn = JSON.parse(json);
                        if (aReturn.showapi_res_code == 1) {
                            //Alexa Sprachausgabe
                            setState(aApiSettings.echodevice + ".Commands.speak", '50; Verbindungsstatus erfolgreich');
            
                        }
                        if (aReturn.showapi_res_code != 1) {
                            //Alexa Sprachausgabe
                            setState(aApiSettings.echodevice + ".Commands.speak", '50; Verbindungsstatus nicht erfolgreich');
            
                        }
                    }
                });
                //reset check binding state after 2 seconds
                setStateDelayed('0_userdata.0.cubinote.actionStates.check_binding_state', false, 2000, false);
            
            });
            
            on({ id: '0_userdata.0.cubinote.actionStates.write_binding_state', val: true }, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                moment.locale('de');         // de
                var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                var sTimestamp = '&timestamp=' + TimeStamp;
                var apiUrl = aApiSettings.url + aApiSettings.action.requestbind + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.userid;
                //console.log(apiUrl);
                const request = require('request');
                request({ 'uri': apiUrl }, function (error, response, json) {
                    if (!error && response.statusCode === 200) {
                        var aReturn = JSON.parse(json);
                        //{"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":301,"showapi_bindid":807712}
                        if (aReturn.showapi_res_code == 1) {
                            setState("0_userdata.0.cubinote.bindid", aReturn.showapi_bindid);
                            setState(aApiSettings.echodevice + ".Commands.speak", '50; Verbindung erfolgreich');
                            var verificationUrl = aApiSettings.url + aApiSettings.action.verifybind + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid;
                            verificationUrl += '&bindID=' + aReturn.showapi_bindid + '&verifyCode=CODE&enablePush=0';
                            //console.log(verificationUrl);
                        }
            
                    }
                });
            });
            

            Script für Cubinote Status abfragen:
            0_userdata.0.cubinote.actionStates.read_cubinotestatus_state (einmal auf true setzen) hier wird der Status des Cubinotes abgefragt und eine Sprachausgabe erzeugt. (0-out of paper and overtemperature; 1-overtemperature; 2-out of paper; 3-normal)

            const moment = require('moment');
            var aApiSettings = {
                //Echo Gerät für Sprachausgabe
                'echodevice': 'YOUR ALEXA ECHO DEVICE',
                'url': getState("0_userdata.0.cubinote.apiurl").val,
                'action': {
                    'print': 'printpaper',
                    'devicestatus': 'getdeviceinfo',
                    'printstatus': 'getprintstat',
                    'requestbind': 'requestbind',
                    'requestbindstatus': 'getbindrequeststatus'
                },
                'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                'liststates': {
                    '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                    '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                }
            }
            
            //check cubinote state
            on({ id: '0_userdata.0.cubinote.actionStates.read_cubinotestatus_state', val: true }, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
            
               var outputDevice = aApiSettings.echodevice;
                
                moment.locale('de');         // de
                var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                var sTimestamp = '&timestamp=' + TimeStamp;
                var apiUrl = aApiSettings.url + aApiSettings.action.devicestatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
            
                const request = require('request');
                request({ 'uri': apiUrl }, function (error, response, json) {
                    if (!error && response.statusCode === 200) {
                        //{"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":601,"showapi_state":1,"showapi_isOnline":1 }
                       var aReturn = JSON.parse(json);
                       //console.log(aReturn);
                        if (aReturn.showapi_res_code == 1) {
                            // console.log(aReturn);
                            if (aReturn.showapi_isOnline == 1) {
                                //0-out of paper and overtemperature; 1-overtemperature; 2-out of paper; 3-normal
                                var msg = '';
                                if (aReturn.showapi_state == 1) {
                                    msg = ' und überhitzt.';
                                }
                                if (aReturn.showapi_state == 2) {
                                    msg = ' und hat kein Papier mehr.';
                                }
                                if (aReturn.showapi_state == 3) {
                                    msg = ' und der Status ist normal.';
                                }
                                setState(outputDevice + ".Commands.speak", '50; Cubinot ist online'+msg);
                            }
                            if (aReturn.showapi_isOnline == 0) {
                                setState(outputDevice + ".Commands.speak", '50; Cubinot ist offline');
                            }
                        }
                    }
                });
            
            
                setStateDelayed('0_userdata.0.cubinote.actionStates.read_cubinotestatus_state', false, 2000, false);
            });
            
            

            Hier nun das Script für Ausdruck der alexa shopping liste und todo liste:
            0_userdata.0.cubinote.actionStates.print_shoppinglist_state (Wert auf true setzen) druckt die Alexa Einkaufsliste
            0_userdata.0.cubinote.actionStates.print_todolist_state (Wert auf true setzen) druckt die Alexa Todoliste

            
            const moment = require('moment');
            const fs = require('fs');
            
            var aApiSettings = {
                //Echo Gerät für Sprachausgabe
                'echodevice': 'YOUR ECHO DEVICE',
                'url': getState("0_userdata.0.cubinote.apiurl").val,
                'action': {
                    'print': 'printpaper',
                    'devicestatus': 'getdeviceinfo',
                    'printstatus': 'getprintstat',
                    'requestbind': 'requestbind',
                    'requestbindstatus': 'getbindrequeststatus'     
                },
                'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                'liststates': {
                    '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                    '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                }
            }
            
            /**Print States */
            for (const [state, list] of Object.entries(aApiSettings.liststates)) {
            
                on({ id: state, val: true }, function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
            
                    moment.locale('de');         // de
                    var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                    var sTimestamp = '&timestamp=' + TimeStamp;
                    var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                    apiUrl += '&printcontent=T:';
            
            
                    var aLists = JSON.parse(getState(list).val);
                    var printList = '';
                    var TimeStampList = moment().format('DD.MM.YYYY HH:mm');
                    if(list == 'alexa2.0.Lists.SHOPPING_LIST.json'){
                        printList = 'Einkaufsliste '+TimeStampList+'\n\r';
                        printList += '================================\n\n\r';
                    }
                    if(list == 'alexa2.0.Lists.TO_DO.json'){
                        printList = 'TODO Liste '+TimeStampList+'\n\r';
                        printList += '================================\n\n\r';
                    }
                     printList += aLists.map(function (val) {
                        var item = val.value
                        item = item[0].toUpperCase() + item.substring(1);
                        return (val.completed ? '[X] ' : '[ ] ') + item;
                    }).join('\n\n\r');
                   
                  //es sind keine Umlaute zulässig somit müssen diese ersetzt werden
                    printList = printList.replace(/Ä/g, 'Ae');
                    printList = printList.replace(/ä/g, 'ae');
                    printList = printList.replace(/Ö/g, 'Oe');
                    printList = printList.replace(/ö/g, 'oe');
                    printList = printList.replace(/Ü/g, 'Ue');
                    printList = printList.replace(/ü/g, 'ue');
                    printList = printList.replace(/ß/g, 'ss');
            
                    var base64 = new Buffer(printList).toString('base64');
            
                    apiUrl += base64;
                  
                    //console.log(apiUrl);
                    const request = require('request');
                    request({ 'uri': apiUrl}, function (error, response, json) {
                        if (!error && response.statusCode === 200) {
            
                            var aReturn = JSON.parse(json);
                            //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                            if (aReturn.result == 2) {
                                var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                                statusUrl += '&printcontentid=' + aReturn.printcontentid;
            
                                request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                    //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                    var outputDevice = aApiSettings.echodevice;
                                    
                                    setState(outputDevice + ".Commands.speak", '50; Drucken Liste erfolgreich');
                
                                });
            
                            }
            
                        }
                    });
            
                    setStateDelayed(state, false, 2000, false);
                });
            }
            
            

            Die actionstates wurden alle als switch definiert die sich nach 2 Sekunden wieder automatisch auf false setzen, ich habe diese so gewählt, da man dann in den Alexa Routinen einfacher Sprachbefehle definieren kann. Sprich jeder action state wurde so angelegt dass man mit alexa routinen einfach und schnell sprachbefehle erzeugen kann im Zusammenspiel mit iot.

            iot-cubinote.png

            Ich denke nun hast du alles dass du auch weiter damit experementieren kannst.
            Ich wünsche Dir viel Spaß.

            Agria4800A Offline
            Agria4800A Offline
            Agria4800
            schrieb am zuletzt editiert von
            #11

            @sebastian-io: Na das nenne ich mal komfortabel :-) Überragend :clap: :+1:
            Danke dir für die wirklich gute Erklärung und das teilen deiner Scripte.
            Ich habe mal alles vorbereitet und werde es testen, sobald ich daheim bin.

            Eine Frage noch: Aktuell druckst du nur die Shopping / Todo aus der .json;
            Ist es auch möglich einen Text aus dem Datenpunkt zu drucken, oder muss / soll ich erst eine DP json erzeugen und diesen dann drucken ? Wahrscheinlich ist es aber egal, ich könnte doch jeden beliebigen DP angeben, oder ?

            Grüße und :handshake:

            Sebastian IOS 1 Antwort Letzte Antwort
            0
            • Agria4800A Agria4800

              @sebastian-io: Na das nenne ich mal komfortabel :-) Überragend :clap: :+1:
              Danke dir für die wirklich gute Erklärung und das teilen deiner Scripte.
              Ich habe mal alles vorbereitet und werde es testen, sobald ich daheim bin.

              Eine Frage noch: Aktuell druckst du nur die Shopping / Todo aus der .json;
              Ist es auch möglich einen Text aus dem Datenpunkt zu drucken, oder muss / soll ich erst eine DP json erzeugen und diesen dann drucken ? Wahrscheinlich ist es aber egal, ich könnte doch jeden beliebigen DP angeben, oder ?

              Grüße und :handshake:

              Sebastian IOS Offline
              Sebastian IOS Offline
              Sebastian IO
              schrieb am zuletzt editiert von
              #12

              @agria4800 klar kannst du text aus einem Datenpunkt drucken!

              DP: 0_userdata.0.cubinote.Notizen.notizenText

              const moment = require('moment');
              var aApiSettings = {
                  //Echo Sprachausgabe
                  'echodevice': 'YOUR ECHO DEVICE',
                  'url': getState("0_userdata.0.cubinote.apiurl").val,
                  'action': {
                      'print': 'printpaper',
                      'devicestatus': 'getdeviceinfo',
                      'printstatus': 'getprintstat',
                      'requestbind': 'requestbind',
                      'requestbindstatus': 'getbindrequeststatus'
                  },
                  'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                  'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                  'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                  'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                  'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                  'liststates': {
                      '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                      '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                  }
              }
              
              on({ id: '0_userdata.0.cubinote.Notizen.notizenText', change: "ne" }, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
              
                  if (getState('0_userdata.0.cubinote.Notizen.notizenText').val !== '') {
                      moment.locale('de');         // de
                      var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                      var sTimestamp = '&timestamp=' + TimeStamp;
                      var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                      apiUrl += '&printcontent=T:';
              
                      //getText
                      var printList = getState('0_userdata.0.cubinote.Notizen.notizenText').val;
                      printList = printList.replace(/<br>/gi, '');
                      printList = printList.replace(/#br#/gi, '\n');
                      printList = printList.replace(/Ä/g, 'Ae');
                      printList = printList.replace(/ä/g, 'ae');
                      printList = printList.replace(/Ö/g, 'Oe');
                      printList = printList.replace(/ö/g, 'oe');
                      printList = printList.replace(/Ü/g, 'Ue');
                      printList = printList.replace(/ü/g, 'ue');
                      printList = printList.replace(/ß/g, 'ss');
              
                      var base64 = new Buffer(printList).toString('base64');
                      apiUrl += base64;
              
                      //console.log(apiUrl);
                      const request = require('request');
                      request({ 'uri': apiUrl, method: 'POST' }, function (error, response, json) {
                          if (!error && response.statusCode === 200) {
              
                              var aReturn = JSON.parse(json);
                              //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                              if (aReturn.result == 2) {
                                  var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                                  statusUrl += '&printcontentid=' + aReturn.printcontentid;
              
                                  request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                      //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                      var outputDevice = aApiSettings.echodevice;
                                     setState(outputDevice + ".Commands.speak", '30; Drucken erfolgreich');
                                     });
                              }
                          }
                      });
                      setStateDelayed('0_userdata.0.cubinote.Notizen.notizenText', '', 2000, false);
                  }
              
              
              });
              
              

              Und nun musst du nur noch den Datenpunkt befüllen und sobald der Datenpunkt befüllt wude, wird dieser gedruckt und danach wieder geleert.

              Agria4800A 1 Antwort Letzte Antwort
              0
              • Sebastian IOS Sebastian IO

                @agria4800 klar kannst du text aus einem Datenpunkt drucken!

                DP: 0_userdata.0.cubinote.Notizen.notizenText

                const moment = require('moment');
                var aApiSettings = {
                    //Echo Sprachausgabe
                    'echodevice': 'YOUR ECHO DEVICE',
                    'url': getState("0_userdata.0.cubinote.apiurl").val,
                    'action': {
                        'print': 'printpaper',
                        'devicestatus': 'getdeviceinfo',
                        'printstatus': 'getprintstat',
                        'requestbind': 'requestbind',
                        'requestbindstatus': 'getbindrequeststatus'
                    },
                    'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                    'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                    'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                    'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                    'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                    'liststates': {
                        '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                        '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                    }
                }
                
                on({ id: '0_userdata.0.cubinote.Notizen.notizenText', change: "ne" }, function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                
                    if (getState('0_userdata.0.cubinote.Notizen.notizenText').val !== '') {
                        moment.locale('de');         // de
                        var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                        var sTimestamp = '&timestamp=' + TimeStamp;
                        var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                        apiUrl += '&printcontent=T:';
                
                        //getText
                        var printList = getState('0_userdata.0.cubinote.Notizen.notizenText').val;
                        printList = printList.replace(/<br>/gi, '');
                        printList = printList.replace(/#br#/gi, '\n');
                        printList = printList.replace(/Ä/g, 'Ae');
                        printList = printList.replace(/ä/g, 'ae');
                        printList = printList.replace(/Ö/g, 'Oe');
                        printList = printList.replace(/ö/g, 'oe');
                        printList = printList.replace(/Ü/g, 'Ue');
                        printList = printList.replace(/ü/g, 'ue');
                        printList = printList.replace(/ß/g, 'ss');
                
                        var base64 = new Buffer(printList).toString('base64');
                        apiUrl += base64;
                
                        //console.log(apiUrl);
                        const request = require('request');
                        request({ 'uri': apiUrl, method: 'POST' }, function (error, response, json) {
                            if (!error && response.statusCode === 200) {
                
                                var aReturn = JSON.parse(json);
                                //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                                if (aReturn.result == 2) {
                                    var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                                    statusUrl += '&printcontentid=' + aReturn.printcontentid;
                
                                    request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                        //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                        var outputDevice = aApiSettings.echodevice;
                                       setState(outputDevice + ".Commands.speak", '30; Drucken erfolgreich');
                                       });
                                }
                            }
                        });
                        setStateDelayed('0_userdata.0.cubinote.Notizen.notizenText', '', 2000, false);
                    }
                
                
                });
                
                

                Und nun musst du nur noch den Datenpunkt befüllen und sobald der Datenpunkt befüllt wude, wird dieser gedruckt und danach wieder geleert.

                Agria4800A Offline
                Agria4800A Offline
                Agria4800
                schrieb am zuletzt editiert von
                #13

                @sebastian-io: ach ja, ein Traum...:blush:
                ich habe alles super umsetzten können und noch ein feines addon:
                Ich sage Alexa einen Text und der Drucker druckt es... --> Alexa, sprich mir nach...und direkt danach den zu druckenden Text!

                Ich teile mal das Script, ich glaube, dass könnte einige interessieren...
                da ich kein JS Experte bin, mehr so durch try and error, ist es nicht schön, aber funktionieren tut´s :-) Vielleicht kannst du ja mal ein update drüber schieben, deine scripte sind ja vom feinsten :+1: :blush:

                // DP erstellen
                createState('0_userdata.0.cubinote.Alexa.SprachText','Test Text Druck',{name:'Alexa sendet Text an Drucker',type:"string",role:"value"});
                
                // Alexa Sprachtext füllt DP 0_userdata.0.cubinote.Alexa.SprachText
                var result;
                on({id: "alexa2.0.History.summary"/*summary*/, change: "ne"}, async function (obj) {
                 var value = obj.state.val;
                 var oldValue = obj.oldState.val;
                 if (getState("alexa2.0.History.summary").val == getState("alexa2.0.History.summary").val.indexOf('sprich mir nach') + 1 && getState("alexa2.0.History.answerText").val != getState("alexa2.0.History.answerText").val.indexOf('Wenn ich etwas nachsprechen soll') + 1) {
                   setStateDelayed("0_userdata.0.cubinote.Alexa.SprachText"/*Alexa.SprachText*/, getState("alexa2.0.History.answerText").val, 10, false);
                   result = getState("alexa2.0.History.answerText").val;
                   console.warn(result);
                   }
                });
                
                
                
                
                // DP 0_userdata.0.cubinote.Alexa.SprachText drucken
                const moment = require('moment');
                var aApiSettings = {
                   //Echo Sprachausgabe
                   'echodevice': 'alexa2.0.Echo-Devices.XXX', // bitte hier dein Device eintragen
                   'url': getState("0_userdata.0.cubinote.apiurl").val,
                   'action': {
                       'print': 'printpaper',
                       'devicestatus': 'getdeviceinfo',
                       'printstatus': 'getprintstat',
                       'requestbind': 'requestbind',
                       'requestbindstatus': 'getbindrequeststatus'
                   },
                   'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                   'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                   'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                   'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                   'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                   'liststates': {
                       '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                       '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                   }
                }
                
                on({ id: '0_userdata.0.cubinote.Alexa.SprachText', change: "ne" }, function (obj) {
                   var value = obj.state.val;
                   var oldValue = obj.oldState.val;
                
                   if (getState('0_userdata.0.cubinote.Alexa.SprachText').val !== '') {
                       moment.locale('de');         // de
                       var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                       var sTimestamp = '&timestamp=' + TimeStamp;
                       var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                       apiUrl += '&printcontent=T:';
                
                       //getText
                      // var //printList = getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                      // var    printList = 'Empfangen am: '+TimeStampList+'\n\r';
                      //     printList += '================================\n\n\r';
                      //     printList += getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                var printList = '';
                       var TimeStampList = moment().format('DD.MM.YYYY HH:mm');{
                           printList = 'Empfangen am: '+TimeStampList+'\n\r';
                           printList += '================================\n\n\r';
                           printList += getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                        
                       }
                
                       printList = printList.replace(/<br>/gi, '');
                       printList = printList.replace(/#br#/gi, '\n');
                       printList = printList.replace(/Ä/g, 'Ae');
                       printList = printList.replace(/ä/g, 'ae');
                       printList = printList.replace(/Ö/g, 'Oe');
                       printList = printList.replace(/ö/g, 'oe');
                       printList = printList.replace(/Ü/g, 'Ue');
                       printList = printList.replace(/ü/g, 'ue');
                       printList = printList.replace(/ß/g, 'ss');
                
                       var base64 = new Buffer(printList).toString('base64');
                       apiUrl += base64;
                
                       //console.log(apiUrl);
                       const request = require('request');
                       request({ 'uri': apiUrl, method: 'POST' }, function (error, response, json) {
                           if (!error && response.statusCode === 200) {
                
                               var aReturn = JSON.parse(json);
                               //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                               if (aReturn.result == 2) {
                                   var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                                   statusUrl += '&printcontentid=' + aReturn.printcontentid;
                
                                   request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                       //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                       var outputDevice = aApiSettings.echodevice;
                                     setState(outputDevice + ".Commands.speak", 'Druck erfolgreich');
                                    //   setState(outputDevice + ".Commands.speak-volume", '30');
                                      });
                               }
                           }
                       });
                   //    setStateDelayed('0_userdata.0.cubinote.Alexa.SprachText', '', 2000, false);
                   }
                
                
                });
                
                
                
                

                2-3 Punkte noch: :grin:

                • Weisst du, ob und wie man noch die Schriftgröße variieren könnte ?
                • Ein Bild (Icon) senden wäre natürlich auch noch sehr nice... (vielleicht aus dem Vis.0 Ordner...da liegen einige)
                • Hast du in Vis was visualisiert ? Texteingabe oder ähnliches ?
                Sebastian IOS 2 Antworten Letzte Antwort
                0
                • M Offline
                  M Offline
                  mcchickents
                  schrieb am zuletzt editiert von
                  #14

                  Guten Abend,

                  habe ich auch mal daran getraut.
                  Habe nun folgendes Problem. Wenn ich den Button 0_userdata.0.cubinote.actionStates.write_binding_state drücke. Druckt mein Drucker App Name Developer Verification Code. Die Alexa sagt das die verbindung steht.
                  Wenn ich nun aber den Staus von 0_userdata.0.cubinote.actionStates.check_binding_state auf true setze. Sagt die Alexa das keine Verbindung besteht. Wo könnte hier der fehler liegen?

                  Gruss Julian

                  Sebastian IOS 1 Antwort Letzte Antwort
                  0
                  • M mcchickents

                    Guten Abend,

                    habe ich auch mal daran getraut.
                    Habe nun folgendes Problem. Wenn ich den Button 0_userdata.0.cubinote.actionStates.write_binding_state drücke. Druckt mein Drucker App Name Developer Verification Code. Die Alexa sagt das die verbindung steht.
                    Wenn ich nun aber den Staus von 0_userdata.0.cubinote.actionStates.check_binding_state auf true setze. Sagt die Alexa das keine Verbindung besteht. Wo könnte hier der fehler liegen?

                    Gruss Julian

                    Sebastian IOS Offline
                    Sebastian IOS Offline
                    Sebastian IO
                    schrieb am zuletzt editiert von
                    #15

                    @mcchickents Guten Morgen,
                    wurde die bindid in den korrekten Datenpunkt geschrieben? Denn für die weiteren Aufrufe wird die bindid benötigt.

                    M 1 Antwort Letzte Antwort
                    0
                    • Agria4800A Agria4800

                      @sebastian-io: ach ja, ein Traum...:blush:
                      ich habe alles super umsetzten können und noch ein feines addon:
                      Ich sage Alexa einen Text und der Drucker druckt es... --> Alexa, sprich mir nach...und direkt danach den zu druckenden Text!

                      Ich teile mal das Script, ich glaube, dass könnte einige interessieren...
                      da ich kein JS Experte bin, mehr so durch try and error, ist es nicht schön, aber funktionieren tut´s :-) Vielleicht kannst du ja mal ein update drüber schieben, deine scripte sind ja vom feinsten :+1: :blush:

                      // DP erstellen
                      createState('0_userdata.0.cubinote.Alexa.SprachText','Test Text Druck',{name:'Alexa sendet Text an Drucker',type:"string",role:"value"});
                      
                      // Alexa Sprachtext füllt DP 0_userdata.0.cubinote.Alexa.SprachText
                      var result;
                      on({id: "alexa2.0.History.summary"/*summary*/, change: "ne"}, async function (obj) {
                       var value = obj.state.val;
                       var oldValue = obj.oldState.val;
                       if (getState("alexa2.0.History.summary").val == getState("alexa2.0.History.summary").val.indexOf('sprich mir nach') + 1 && getState("alexa2.0.History.answerText").val != getState("alexa2.0.History.answerText").val.indexOf('Wenn ich etwas nachsprechen soll') + 1) {
                         setStateDelayed("0_userdata.0.cubinote.Alexa.SprachText"/*Alexa.SprachText*/, getState("alexa2.0.History.answerText").val, 10, false);
                         result = getState("alexa2.0.History.answerText").val;
                         console.warn(result);
                         }
                      });
                      
                      
                      
                      
                      // DP 0_userdata.0.cubinote.Alexa.SprachText drucken
                      const moment = require('moment');
                      var aApiSettings = {
                         //Echo Sprachausgabe
                         'echodevice': 'alexa2.0.Echo-Devices.XXX', // bitte hier dein Device eintragen
                         'url': getState("0_userdata.0.cubinote.apiurl").val,
                         'action': {
                             'print': 'printpaper',
                             'devicestatus': 'getdeviceinfo',
                             'printstatus': 'getprintstat',
                             'requestbind': 'requestbind',
                             'requestbindstatus': 'getbindrequeststatus'
                         },
                         'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                         'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                         'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                         'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                         'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                         'liststates': {
                             '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                             '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                         }
                      }
                      
                      on({ id: '0_userdata.0.cubinote.Alexa.SprachText', change: "ne" }, function (obj) {
                         var value = obj.state.val;
                         var oldValue = obj.oldState.val;
                      
                         if (getState('0_userdata.0.cubinote.Alexa.SprachText').val !== '') {
                             moment.locale('de');         // de
                             var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                             var sTimestamp = '&timestamp=' + TimeStamp;
                             var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                             apiUrl += '&printcontent=T:';
                      
                             //getText
                            // var //printList = getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                            // var    printList = 'Empfangen am: '+TimeStampList+'\n\r';
                            //     printList += '================================\n\n\r';
                            //     printList += getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                      var printList = '';
                             var TimeStampList = moment().format('DD.MM.YYYY HH:mm');{
                                 printList = 'Empfangen am: '+TimeStampList+'\n\r';
                                 printList += '================================\n\n\r';
                                 printList += getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                              
                             }
                      
                             printList = printList.replace(/<br>/gi, '');
                             printList = printList.replace(/#br#/gi, '\n');
                             printList = printList.replace(/Ä/g, 'Ae');
                             printList = printList.replace(/ä/g, 'ae');
                             printList = printList.replace(/Ö/g, 'Oe');
                             printList = printList.replace(/ö/g, 'oe');
                             printList = printList.replace(/Ü/g, 'Ue');
                             printList = printList.replace(/ü/g, 'ue');
                             printList = printList.replace(/ß/g, 'ss');
                      
                             var base64 = new Buffer(printList).toString('base64');
                             apiUrl += base64;
                      
                             //console.log(apiUrl);
                             const request = require('request');
                             request({ 'uri': apiUrl, method: 'POST' }, function (error, response, json) {
                                 if (!error && response.statusCode === 200) {
                      
                                     var aReturn = JSON.parse(json);
                                     //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                                     if (aReturn.result == 2) {
                                         var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                                         statusUrl += '&printcontentid=' + aReturn.printcontentid;
                      
                                         request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                             //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                             var outputDevice = aApiSettings.echodevice;
                                           setState(outputDevice + ".Commands.speak", 'Druck erfolgreich');
                                          //   setState(outputDevice + ".Commands.speak-volume", '30');
                                            });
                                     }
                                 }
                             });
                         //    setStateDelayed('0_userdata.0.cubinote.Alexa.SprachText', '', 2000, false);
                         }
                      
                      
                      });
                      
                      
                      
                      

                      2-3 Punkte noch: :grin:

                      • Weisst du, ob und wie man noch die Schriftgröße variieren könnte ?
                      • Ein Bild (Icon) senden wäre natürlich auch noch sehr nice... (vielleicht aus dem Vis.0 Ordner...da liegen einige)
                      • Hast du in Vis was visualisiert ? Texteingabe oder ähnliches ?
                      Sebastian IOS Offline
                      Sebastian IOS Offline
                      Sebastian IO
                      schrieb am zuletzt editiert von Sebastian IO
                      #16

                      @agria4800

                      Guten Morgen,

                      zu Punkt Schriftgröße, nein ist leider nicht möglich, habe extra deswegen auch den support von cubinote angeschrieben.
                      zu Punkt Bild, ist prinzipiell möglich, jedoch muss das bild in 1-bit monochrom sein und danach base64 encoded werden, ich habe es bis dato noch nicht zum Laufen bekommen, vielleicht hast du mehr Glück und Ausdauer für das Problem.
                      zu Punkt Visualisierung, ja habe ich in Jarvis umgesetzt.
                      screen-print-jarvis.png

                      VG

                      1 Antwort Letzte Antwort
                      0
                      • Sebastian IOS Sebastian IO

                        @mcchickents Guten Morgen,
                        wurde die bindid in den korrekten Datenpunkt geschrieben? Denn für die weiteren Aufrufe wird die bindid benötigt.

                        M Offline
                        M Offline
                        mcchickents
                        schrieb am zuletzt editiert von
                        #17

                        @sebastian-io Guten Morgen, ja er schreibt schön die bindid in die Variable, wenn ich write_binding auslöse. Muss ich vieleicht noch irgentwo den Verification Code den er ausdruck in eine variable eintragen?

                        Gruss Julian

                        Sebastian IOS 1 Antwort Letzte Antwort
                        0
                        • M mcchickents

                          @sebastian-io Guten Morgen, ja er schreibt schön die bindid in die Variable, wenn ich write_binding auslöse. Muss ich vieleicht noch irgentwo den Verification Code den er ausdruck in eine variable eintragen?

                          Gruss Julian

                          Sebastian IOS Offline
                          Sebastian IOS Offline
                          Sebastian IO
                          schrieb am zuletzt editiert von
                          #18

                          @mcchickents kann es sein dass du die normale installation für den cubinote noch nicht gemacht hast, soviel ich mich erinnere musste doch dieser Verification Code bei der Erstinstallation angegeben werden, sprich Aufnahme ins Wlan und in die Handy App?

                          M 1 Antwort Letzte Antwort
                          0
                          • Sebastian IOS Sebastian IO

                            @mcchickents kann es sein dass du die normale installation für den cubinote noch nicht gemacht hast, soviel ich mich erinnere musste doch dieser Verification Code bei der Erstinstallation angegeben werden, sprich Aufnahme ins Wlan und in die Handy App?

                            M Offline
                            M Offline
                            mcchickents
                            schrieb am zuletzt editiert von
                            #19

                            @sebastian-io Hi ich habe beim einrichten der App leider keinen code benötigt. Die App (Ios) funktioniert aber einwandfrei. Ich kann hier Bilder sowie Texte drucken.

                            Gruss Julian

                            Agria4800A 1 Antwort Letzte Antwort
                            0
                            • M mcchickents

                              @sebastian-io Hi ich habe beim einrichten der App leider keinen code benötigt. Die App (Ios) funktioniert aber einwandfrei. Ich kann hier Bilder sowie Texte drucken.

                              Gruss Julian

                              Agria4800A Offline
                              Agria4800A Offline
                              Agria4800
                              schrieb am zuletzt editiert von
                              #20

                              @mcchickents: führe mal das bitte deine Daten eintragen bei XXX aus...

                              http://api.cubinote.com/home/requestbind?appID=XXX&ak=XXX&timestamp=2014-11-14%2014:22:39&deviceID=XXX&useridentifying=XXX
                              

                              App id siehst du nach dem einloggen bei

                              https://developer.cubinote.com 
                              
                              M 1 Antwort Letzte Antwort
                              0
                              • Agria4800A Agria4800

                                @mcchickents: führe mal das bitte deine Daten eintragen bei XXX aus...

                                http://api.cubinote.com/home/requestbind?appID=XXX&ak=XXX&timestamp=2014-11-14%2014:22:39&deviceID=XXX&useridentifying=XXX
                                

                                App id siehst du nach dem einloggen bei

                                https://developer.cubinote.com 
                                
                                M Offline
                                M Offline
                                mcchickents
                                schrieb am zuletzt editiert von
                                #21

                                @agria4800
                                Danke für eure unterstüzung.

                                Habe die URL ausgeführt.
                                Als User ID habe ich die 6 Stellige nummer aus der App genommen ist das richtig?

                                Als Antwort habe ich das erhalten:
                                {"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":602,"showapi_bindid":807xxx} bindid ist gleich wie im Iobroker

                                Gruss Julian

                                Agria4800A 1 Antwort Letzte Antwort
                                0
                                • M mcchickents

                                  @agria4800
                                  Danke für eure unterstüzung.

                                  Habe die URL ausgeführt.
                                  Als User ID habe ich die 6 Stellige nummer aus der App genommen ist das richtig?

                                  Als Antwort habe ich das erhalten:
                                  {"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":602,"showapi_bindid":807xxx} bindid ist gleich wie im Iobroker

                                  Gruss Julian

                                  Agria4800A Offline
                                  Agria4800A Offline
                                  Agria4800
                                  schrieb am zuletzt editiert von Agria4800
                                  #22

                                  @mcchickents: und geht es jetzt?
                                  Hier mal ein Bild bezüglich der App Id, wo diese zu finden ist
                                  2FCFC246-975B-4554-88C5-D00A2F2E22F2.jpeg

                                  Falls du noch Hilfe brauchst, melde dich!

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • Agria4800A Agria4800

                                    @sebastian-io: ach ja, ein Traum...:blush:
                                    ich habe alles super umsetzten können und noch ein feines addon:
                                    Ich sage Alexa einen Text und der Drucker druckt es... --> Alexa, sprich mir nach...und direkt danach den zu druckenden Text!

                                    Ich teile mal das Script, ich glaube, dass könnte einige interessieren...
                                    da ich kein JS Experte bin, mehr so durch try and error, ist es nicht schön, aber funktionieren tut´s :-) Vielleicht kannst du ja mal ein update drüber schieben, deine scripte sind ja vom feinsten :+1: :blush:

                                    // DP erstellen
                                    createState('0_userdata.0.cubinote.Alexa.SprachText','Test Text Druck',{name:'Alexa sendet Text an Drucker',type:"string",role:"value"});
                                    
                                    // Alexa Sprachtext füllt DP 0_userdata.0.cubinote.Alexa.SprachText
                                    var result;
                                    on({id: "alexa2.0.History.summary"/*summary*/, change: "ne"}, async function (obj) {
                                     var value = obj.state.val;
                                     var oldValue = obj.oldState.val;
                                     if (getState("alexa2.0.History.summary").val == getState("alexa2.0.History.summary").val.indexOf('sprich mir nach') + 1 && getState("alexa2.0.History.answerText").val != getState("alexa2.0.History.answerText").val.indexOf('Wenn ich etwas nachsprechen soll') + 1) {
                                       setStateDelayed("0_userdata.0.cubinote.Alexa.SprachText"/*Alexa.SprachText*/, getState("alexa2.0.History.answerText").val, 10, false);
                                       result = getState("alexa2.0.History.answerText").val;
                                       console.warn(result);
                                       }
                                    });
                                    
                                    
                                    
                                    
                                    // DP 0_userdata.0.cubinote.Alexa.SprachText drucken
                                    const moment = require('moment');
                                    var aApiSettings = {
                                       //Echo Sprachausgabe
                                       'echodevice': 'alexa2.0.Echo-Devices.XXX', // bitte hier dein Device eintragen
                                       'url': getState("0_userdata.0.cubinote.apiurl").val,
                                       'action': {
                                           'print': 'printpaper',
                                           'devicestatus': 'getdeviceinfo',
                                           'printstatus': 'getprintstat',
                                           'requestbind': 'requestbind',
                                           'requestbindstatus': 'getbindrequeststatus'
                                       },
                                       'appid': '?appID=' + getState("0_userdata.0.cubinote.appid").val,
                                       'accesskey': '&ak=' + getState("0_userdata.0.cubinote.accesskey").val,
                                       'deviceid': '&deviceID=' + getState("0_userdata.0.cubinote.deviceid").val,
                                       'bindid': '&bindID=' + getState("0_userdata.0.cubinote.bindid").val,
                                       'userid': '&useridentifying' + getState("0_userdata.0.cubinote.userid").val,
                                       'liststates': {
                                           '0_userdata.0.cubinote.actionStates.print_shoppinglist_state': 'alexa2.0.Lists.SHOPPING_LIST.json',
                                           '0_userdata.0.cubinote.actionStates.print_todolist_state': 'alexa2.0.Lists.TO_DO.json'
                                       }
                                    }
                                    
                                    on({ id: '0_userdata.0.cubinote.Alexa.SprachText', change: "ne" }, function (obj) {
                                       var value = obj.state.val;
                                       var oldValue = obj.oldState.val;
                                    
                                       if (getState('0_userdata.0.cubinote.Alexa.SprachText').val !== '') {
                                           moment.locale('de');         // de
                                           var TimeStamp = moment().format('YYYY-MM-DD hh:mm:ss');
                                           var sTimestamp = '&timestamp=' + TimeStamp;
                                           var apiUrl = aApiSettings.url + aApiSettings.action.print + aApiSettings.appid + aApiSettings.accesskey + sTimestamp + aApiSettings.deviceid + aApiSettings.bindid;
                                           apiUrl += '&printcontent=T:';
                                    
                                           //getText
                                          // var //printList = getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                                          // var    printList = 'Empfangen am: '+TimeStampList+'\n\r';
                                          //     printList += '================================\n\n\r';
                                          //     printList += getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                                    var printList = '';
                                           var TimeStampList = moment().format('DD.MM.YYYY HH:mm');{
                                               printList = 'Empfangen am: '+TimeStampList+'\n\r';
                                               printList += '================================\n\n\r';
                                               printList += getState('0_userdata.0.cubinote.Alexa.SprachText').val;
                                            
                                           }
                                    
                                           printList = printList.replace(/<br>/gi, '');
                                           printList = printList.replace(/#br#/gi, '\n');
                                           printList = printList.replace(/Ä/g, 'Ae');
                                           printList = printList.replace(/ä/g, 'ae');
                                           printList = printList.replace(/Ö/g, 'Oe');
                                           printList = printList.replace(/ö/g, 'oe');
                                           printList = printList.replace(/Ü/g, 'Ue');
                                           printList = printList.replace(/ü/g, 'ue');
                                           printList = printList.replace(/ß/g, 'ss');
                                    
                                           var base64 = new Buffer(printList).toString('base64');
                                           apiUrl += base64;
                                    
                                           //console.log(apiUrl);
                                           const request = require('request');
                                           request({ 'uri': apiUrl, method: 'POST' }, function (error, response, json) {
                                               if (!error && response.statusCode === 200) {
                                    
                                                   var aReturn = JSON.parse(json);
                                                   //{"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid":52476}
                                                   if (aReturn.result == 2) {
                                                       var statusUrl = aApiSettings.url + aApiSettings.action.printstatus + aApiSettings.appid + aApiSettings.accesskey + sTimestamp;
                                                       statusUrl += '&printcontentid=' + aReturn.printcontentid;
                                    
                                                       request({ 'uri': statusUrl }, function (err, resp, jsonStatus) {
                                                           //{"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid":52476}
                                                           var outputDevice = aApiSettings.echodevice;
                                                         setState(outputDevice + ".Commands.speak", 'Druck erfolgreich');
                                                        //   setState(outputDevice + ".Commands.speak-volume", '30');
                                                          });
                                                   }
                                               }
                                           });
                                       //    setStateDelayed('0_userdata.0.cubinote.Alexa.SprachText', '', 2000, false);
                                       }
                                    
                                    
                                    });
                                    
                                    
                                    
                                    

                                    2-3 Punkte noch: :grin:

                                    • Weisst du, ob und wie man noch die Schriftgröße variieren könnte ?
                                    • Ein Bild (Icon) senden wäre natürlich auch noch sehr nice... (vielleicht aus dem Vis.0 Ordner...da liegen einige)
                                    • Hast du in Vis was visualisiert ? Texteingabe oder ähnliches ?
                                    Sebastian IOS Offline
                                    Sebastian IOS Offline
                                    Sebastian IO
                                    schrieb am zuletzt editiert von
                                    #23

                                    @agria4800 danke für den coolen Tip,
                                    hab es jetzt für mich angepasst sodass es mit dem DP 0_userdata.0.cubinote.Notizen.notizenText zusammenarbeitet,
                                    hier ist ja auch schon das parsing für umlaute integriert und setzt den Text automatisch zurück!

                                    on({id: "alexa2.0.History.answerText", change: "ne"}, async function (obj) {
                                    
                                    
                                     if (getState("alexa2.0.History.summary").val.indexOf('sprich mir nach') !== -1 && getState("alexa2.0.History.answerText").val.indexOf('Wenn ich etwas nachsprechen') === -1 ) {
                                    
                                        setStateDelayed('0_userdata.0.cubinote.Notizen.notizenText', getState("alexa2.0.History.answerText").val, 1000, false);
                                       }
                                    
                                    });
                                    
                                    Agria4800A 1 Antwort Letzte Antwort
                                    0
                                    • Agria4800A Agria4800

                                      @mcchickents: und geht es jetzt?
                                      Hier mal ein Bild bezüglich der App Id, wo diese zu finden ist
                                      2FCFC246-975B-4554-88C5-D00A2F2E22F2.jpeg

                                      Falls du noch Hilfe brauchst, melde dich!

                                      M Offline
                                      M Offline
                                      mcchickents
                                      schrieb am zuletzt editiert von mcchickents
                                      #24

                                      @agria4800 Nein geht leider nicht gleiches Verhalten 🙁

                                      Frage wenn ihr den Button 0_userdata.0.cubinote.actionStates.write_binding_state aktiviert druckt euer drucker dann auch zweimal hintereinader APP name: xxxxx Developer: xxxx Verification Code: xxx aus?

                                      gruss Julian

                                      Sebastian IOS 1 Antwort Letzte Antwort
                                      0
                                      • M mcchickents

                                        @agria4800 Nein geht leider nicht gleiches Verhalten 🙁

                                        Frage wenn ihr den Button 0_userdata.0.cubinote.actionStates.write_binding_state aktiviert druckt euer drucker dann auch zweimal hintereinader APP name: xxxxx Developer: xxxx Verification Code: xxx aus?

                                        gruss Julian

                                        Sebastian IOS Offline
                                        Sebastian IOS Offline
                                        Sebastian IO
                                        schrieb am zuletzt editiert von Sebastian IO
                                        #25

                                        @mcchickents hast du alle scripte von mir eingebunden? Sind alle Datenpunkte vorhanden? Kannst du den Status des cubinotes abfragen oder drucken?

                                        Deine appid darf max 3 oder 4-stellig sein, deine deviceid sollte aus buchstaben und zahlen bestehen und ungefähr 16 Zeichen lang sein und deine userid sollte dein Benutzername sein!

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • Sebastian IOS Sebastian IO

                                          @mcchickents hast du alle scripte von mir eingebunden? Sind alle Datenpunkte vorhanden? Kannst du den Status des cubinotes abfragen oder drucken?

                                          Deine appid darf max 3 oder 4-stellig sein, deine deviceid sollte aus buchstaben und zahlen bestehen und ungefähr 16 Zeichen lang sein und deine userid sollte dein Benutzername sein!

                                          M Offline
                                          M Offline
                                          mcchickents
                                          schrieb am zuletzt editiert von
                                          #26

                                          @sebastian-io

                                          ich denke schon das ich alles übernommen habe? anbei mal zwei bilder

                                          d83c0b9e-bcaf-4568-b072-7620e366e3b4-image.png

                                          ac8589a7-e308-4df8-9e6e-b6563f6644af-image.png

                                          Sebastian IOS 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          894

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe