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
    6
    1
    56

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

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

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
65 Beiträge 8 Kommentatoren 10.0k 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.
  • 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
              • M mcchickents

                @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 Offline
                Sebastian IOS Offline
                Sebastian IO
                schrieb am zuletzt editiert von Sebastian IO
                #27

                @mcchickents ich glaube es liegt an deiner userid, das wording ist verwirrend aber da muss der username eingetragen sein!

                Den Usernamen findest du in deiner app im Profil, direkt unter deinem Bild!

                M 1 Antwort Letzte Antwort
                0
                • Sebastian IOS Sebastian IO

                  @mcchickents ich glaube es liegt an deiner userid, das wording ist verwirrend aber da muss der username eingetragen sein!

                  Den Usernamen findest du in deiner app im Profil, direkt unter deinem Bild!

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

                  @sebastian-io userid habe ich geändert will leider immer noch nicht. Was mir aber aufgefallen ist. Wenn ich den user namen in der url ändere.

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

                  verändert sich der Verification code auf dem ausdruck.

                  Wenn ich jedoch im Iobroker den eintrag ändere bleibt der verification code gleich?

                  Gruss Julian

                  Sebastian IOS 1 Antwort Letzte Antwort
                  0
                  • M mcchickents

                    @sebastian-io userid habe ich geändert will leider immer noch nicht. Was mir aber aufgefallen ist. Wenn ich den user namen in der url ändere.

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

                    verändert sich der Verification code auf dem ausdruck.

                    Wenn ich jedoch im Iobroker den eintrag ändere bleibt der verification code gleich?

                    Gruss Julian

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

                    @mcchickents ich habe das jetzt auch mal direkt in der url eingegeben und als rückgabe im Browser bekomme ich als json format folgende Ausgabe:

                    showapi_res_code	1
                    showapi_res_error	"ok"
                    showapi_devicetype	602
                    showapi_bindid	807927
                    

                    Und der Drucker printet:
                    App name: iobroker-cubinote
                    Developer: sebastian_io
                    Verification-Code: .....

                    Bei dir müsste also dein App Name, Developer etc drin stehen und wenn du das über iobroker machst und den Datenpunkt 0_userdata.0.cubinote.actionStates.check_binding_state auf true setzt, dann sollte eine Sprachausgabe über deine ausgewählte alexa kommen, aber ohne Ausdruck!

                    M G 2 Antworten Letzte Antwort
                    0
                    • Sebastian IOS Sebastian IO

                      @mcchickents ich habe das jetzt auch mal direkt in der url eingegeben und als rückgabe im Browser bekomme ich als json format folgende Ausgabe:

                      showapi_res_code	1
                      showapi_res_error	"ok"
                      showapi_devicetype	602
                      showapi_bindid	807927
                      

                      Und der Drucker printet:
                      App name: iobroker-cubinote
                      Developer: sebastian_io
                      Verification-Code: .....

                      Bei dir müsste also dein App Name, Developer etc drin stehen und wenn du das über iobroker machst und den Datenpunkt 0_userdata.0.cubinote.actionStates.check_binding_state auf true setzt, dann sollte eine Sprachausgabe über deine ausgewählte alexa kommen, aber ohne Ausdruck!

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

                      @sebastian-io

                      das funktioniert schon ich bekomme nur immer von der netten alexa gesagt verbindungsstatus nicht erfolgreich^^

                      wenn ich write_binding_state drücke, druckt der drucker zweimal hintereinder und alexa sagt verbindung erfolgreich.

                      Interresanter weiße stehen auf den ausdrucken aber unterschiedliche sachen. als würde er im iobroker den user namen nicht verwenden.

                      Sebastian IOS 1 Antwort Letzte Antwort
                      0
                      • M mcchickents

                        @sebastian-io

                        das funktioniert schon ich bekomme nur immer von der netten alexa gesagt verbindungsstatus nicht erfolgreich^^

                        wenn ich write_binding_state drücke, druckt der drucker zweimal hintereinder und alexa sagt verbindung erfolgreich.

                        Interresanter weiße stehen auf den ausdrucken aber unterschiedliche sachen. als würde er im iobroker den user namen nicht verwenden.

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

                        @mcchickents druckt cubinote deine Shoppingliste oder deine Todoliste aus? sprich über:
                        0_userdata.0.cubinote.actionStates.print_shoppinglist_state auf true oder
                        0_userdata.0.cubinote.actionStates.print_todolist_state auf true ?

                        M 1 Antwort Letzte Antwort
                        0
                        • Sebastian IOS Sebastian IO

                          @mcchickents druckt cubinote deine Shoppingliste oder deine Todoliste aus? sprich über:
                          0_userdata.0.cubinote.actionStates.print_shoppinglist_state auf true oder
                          0_userdata.0.cubinote.actionStates.print_todolist_state auf true ?

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

                          @sebastian-io nein druckt er nicht

                          Sebastian IOS 1 Antwort Letzte Antwort
                          0
                          • M mcchickents

                            @sebastian-io nein druckt er nicht

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

                            @mcchickents und im javascript protokoll steht auch nichts? eventuell den javascript adapter neustarten! Werden die obengenannten actionStates wieder automatisch auf false gesetzt? Es kann prinzipiell nur eine Kleinigkeit sein!

                            M 1 Antwort Letzte Antwort
                            0
                            • Sebastian IOS Sebastian IO

                              @mcchickents und im javascript protokoll steht auch nichts? eventuell den javascript adapter neustarten! Werden die obengenannten actionStates wieder automatisch auf false gesetzt? Es kann prinzipiell nur eine Kleinigkeit sein!

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

                              @sebastian-io

                              kompletten iobroker neu gestartet = kein erfolg

                              check binding wird von true automatisch auf false gesetzt
                              write binding ebenfalls
                              die beiden print states bleiben auf true stehen

                              Sebastian IOS 1 Antwort Letzte Antwort
                              0
                              • M mcchickents

                                @sebastian-io

                                kompletten iobroker neu gestartet = kein erfolg

                                check binding wird von true automatisch auf false gesetzt
                                write binding ebenfalls
                                die beiden print states bleiben auf true stehen

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

                                @mcchickents Hast du alle scripte eingebunden? als bsp für die alexa listen nochmal:
                                Wird ein Fehler im javascript Protokoll ausgeworfen?

                                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);
                                    });
                                }
                                 
                                
                                
                                M 1 Antwort Letzte Antwort
                                0
                                • Sebastian IOS Sebastian IO

                                  @mcchickents Hast du alle scripte eingebunden? als bsp für die alexa listen nochmal:
                                  Wird ein Fehler im javascript Protokoll ausgeworfen?

                                  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);
                                      });
                                  }
                                   
                                  
                                  
                                  M Offline
                                  M Offline
                                  mcchickents
                                  schrieb am zuletzt editiert von mcchickents
                                  #36

                                  @sebastian-io 75) You are assigning a number to the state "0_userdata.0.cubinote.bindid" which expects a string. Please fix your code to use a string or change the state type to number. This warning might becom

                                  habe 4 javascripte von dir am laufen. habe aber lediglich die alexa eingebunden sonst habe ich an den scripten nix gemacht.

                                  Gruss Julian

                                  Agria4800A 1 Antwort Letzte Antwort
                                  0
                                  • M mcchickents

                                    @sebastian-io 75) You are assigning a number to the state "0_userdata.0.cubinote.bindid" which expects a string. Please fix your code to use a string or change the state type to number. This warning might becom

                                    habe 4 javascripte von dir am laufen. habe aber lediglich die alexa eingebunden sonst habe ich an den scripten nix gemacht.

                                    Gruss Julian

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

                                    @mcchickents :

                                    So, vielleicht kann ich helfen, nochmal auf Anfang: Führe mal bitte die Punkte im Spoiler aus:
                                    Im oberen Bereich (Das wird benötigt) alle Info´s sammeln und eintragen (aufschreiben) --Jeweils aus der App, Developer Seite, A=Anwtort der links, Printer Zettel) kommen die Info´s her

                                    Bitte in den Links die XXX jeweils mit deinen gesammelten Info´s ersetzten!

                                    /Cubinote task....

                                    ///Das wird benötigt !
                                    // APP ID: 10X
                                    // Access Key AK: XXXXXXXXXXX
                                    // Device ID: XXXXXXXX
                                    // Cubinote ID: XXXXX
                                    // App name: XXX
                                    // Developer: XXX
                                    // Verification Code: z.b.:XXX
                                    // Bind ID: XXX
                                    // useridentifying: XXXXX
                                    // printcontentid“: XXXXX

                                    //1.) http://api.cubinote.com/home/requestbind?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&deviceID=XXX&useridentifying=108XX
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":602,"showapi_bindid“:XXXXXX}

                                    //2.) http://api.cubinote.com/home/getbindrequeststatus?appID=XX&ak=XXXtimestamp=2014-11-14 14:22:39&deviceID=XX&bindID=XXXXX
                                    //A: {"showapi_res_code":0,"showapi_res_error":"ok","showapi_devicetype":602}

                                    //(3.) http://api.cubinote.com/home/verifybind?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&deviceID=9XXX&bindID=807XXX&verifyCode=XXX&enablePush=1
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok"}

                                    //4.) http://api.cubinote.com/home/getbindlist?appID=XXX&ak=XXX&timestamp=2021-04-04 21:20:39
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_bindlist":"{"ds":[{"bindID\“:XXX,\“deviceID\“:\“XXX\“,\“useridentifying\“:\“XXXXX\“,\“deviceType":602,"enablePush":true}]}"}

                                    //5.) http://api.cubinote.com/home/getbindlistbyuseridentifying?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&useridentifying=1
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_bindlist":"{"ds":[]}"}

                                    //7.) http://api.cubinote.com/home/getdeviceinfo?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&deviceID=XXX&bindID=XXXXX
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":602,"showapi_state":3,"showapi_isOnline":1}

                                    //8.) http://api.cubinote.com/home/printpaper?appID=XXX&ak=XXX&timestamp=2017-11-20 14:43:56&deviceID=XXX&bindID=XXXXXX&printcontent=T:dGVzdA==
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid“:XXXX}

                                    //9.) http://api.cubinote.com/home/getprintstatus?appID=XXX&ak=XXX&timestamp=2017-11-20 14:43:56&printcontentid=XXX
                                    //A: {"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid“:XXX}

                                    //10.) http://api.cubinote.com/home/getSignalBase64Pic?appID=XXX&ak=XXX&imgBase64String=xxx
                                    //A: —— {"showapi_res_code":0,"showapi_res_error":"pic change error"}
                                    //A {„showapi_res_code":1,"showapi_res_error":"ok","result":"xxx"}


                                    Wenn du alle Info´s hast, dann die DP, die vom Script angelegt wurden per Hand füllen und wie sebastion-io geschrieben hat vorgehen

                                    write & check binding state script:

                                    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.

                                    M 1 Antwort Letzte Antwort
                                    0
                                    • Sebastian IOS Sebastian IO

                                      @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 Offline
                                      Agria4800A Offline
                                      Agria4800
                                      schrieb am zuletzt editiert von Agria4800
                                      #38

                                      @sebastian-io: Ich hab´s nochmal etwas optimiert, da doch einige Drucke im laufe des Tages kamen... daher habe ich einen seperaten DP zum drucken genommen... und mal ne schnelle Vis zusammen gebastelt...
                                      b518edc5-6652-4c42-93c8-a63f2342b624-image.png
                                      So wird der gesprochene Text geschrieben und erst gedruckt, wenn ich (IOT) sagen, Fax an Oma Ella senden :-)

                                      Hintergrund ist der, das der Drucker als Fax für meine Oma gedacht ist, da die Corona Zeit doch sehr einsam macht und mit 91 Jahren Whatsapp doch zu komplex für sie ist, dachte ich mir, mit einem guten Zettel kann man sie doch glücklich stimmen..die gute Oma Ella :grinning: da spreche ich kurz mit Alexa, oder schreibe per App, oder per Computer, oder nehme vordefinierte Texte per VIS...ist egal, geht ja alles... und die Frau ist happy, wenn der Drucker brummt....
                                      Maximal komfortabel !!! Dank deine Idee... daher, nochmals vielen Dank für deine Hilfe zu meinem Projekt "Mach Oma Ella glücklich" :+1: :+1: :+1:

                                      1 Antwort Letzte Antwort
                                      1
                                      • Agria4800A Agria4800

                                        @mcchickents :

                                        So, vielleicht kann ich helfen, nochmal auf Anfang: Führe mal bitte die Punkte im Spoiler aus:
                                        Im oberen Bereich (Das wird benötigt) alle Info´s sammeln und eintragen (aufschreiben) --Jeweils aus der App, Developer Seite, A=Anwtort der links, Printer Zettel) kommen die Info´s her

                                        Bitte in den Links die XXX jeweils mit deinen gesammelten Info´s ersetzten!

                                        /Cubinote task....

                                        ///Das wird benötigt !
                                        // APP ID: 10X
                                        // Access Key AK: XXXXXXXXXXX
                                        // Device ID: XXXXXXXX
                                        // Cubinote ID: XXXXX
                                        // App name: XXX
                                        // Developer: XXX
                                        // Verification Code: z.b.:XXX
                                        // Bind ID: XXX
                                        // useridentifying: XXXXX
                                        // printcontentid“: XXXXX

                                        //1.) http://api.cubinote.com/home/requestbind?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&deviceID=XXX&useridentifying=108XX
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":602,"showapi_bindid“:XXXXXX}

                                        //2.) http://api.cubinote.com/home/getbindrequeststatus?appID=XX&ak=XXXtimestamp=2014-11-14 14:22:39&deviceID=XX&bindID=XXXXX
                                        //A: {"showapi_res_code":0,"showapi_res_error":"ok","showapi_devicetype":602}

                                        //(3.) http://api.cubinote.com/home/verifybind?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&deviceID=9XXX&bindID=807XXX&verifyCode=XXX&enablePush=1
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok"}

                                        //4.) http://api.cubinote.com/home/getbindlist?appID=XXX&ak=XXX&timestamp=2021-04-04 21:20:39
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_bindlist":"{"ds":[{"bindID\“:XXX,\“deviceID\“:\“XXX\“,\“useridentifying\“:\“XXXXX\“,\“deviceType":602,"enablePush":true}]}"}

                                        //5.) http://api.cubinote.com/home/getbindlistbyuseridentifying?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&useridentifying=1
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_bindlist":"{"ds":[]}"}

                                        //7.) http://api.cubinote.com/home/getdeviceinfo?appID=XXX&ak=XXX&timestamp=2014-11-14 14:22:39&deviceID=XXX&bindID=XXXXX
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok","showapi_devicetype":602,"showapi_state":3,"showapi_isOnline":1}

                                        //8.) http://api.cubinote.com/home/printpaper?appID=XXX&ak=XXX&timestamp=2017-11-20 14:43:56&deviceID=XXX&bindID=XXXXXX&printcontent=T:dGVzdA==
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok","result":2,"printcontentid“:XXXX}

                                        //9.) http://api.cubinote.com/home/getprintstatus?appID=XXX&ak=XXX&timestamp=2017-11-20 14:43:56&printcontentid=XXX
                                        //A: {"showapi_res_code":1,"showapi_res_error":"ok","printflag":1,"printcontentid“:XXX}

                                        //10.) http://api.cubinote.com/home/getSignalBase64Pic?appID=XXX&ak=XXX&imgBase64String=xxx
                                        //A: —— {"showapi_res_code":0,"showapi_res_error":"pic change error"}
                                        //A {„showapi_res_code":1,"showapi_res_error":"ok","result":"xxx"}


                                        Wenn du alle Info´s hast, dann die DP, die vom Script angelegt wurden per Hand füllen und wie sebastion-io geschrieben hat vorgehen

                                        write & check binding state script:

                                        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.

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

                                        @agria4800 said in [Projekt] Integr. Cubinote - Alexa Sprache drucken - Listen:

                                        http://api.cubinote.com/home/printpaper?appID=XXX&ak=XXX&timestamp=2017-11-20 14:43:56&deviceID=XXX&bindID=XXXXXX&printcontent=T:dGVzdA==

                                        bei Punkt 8 bekomme ich
                                        {"showapi_res_code":0,"showapi_res_error":"Not a valid bind device"}

                                        Agria4800A 1 Antwort Letzte Antwort
                                        0
                                        • M mcchickents

                                          @agria4800 said in [Projekt] Integr. Cubinote - Alexa Sprache drucken - Listen:

                                          http://api.cubinote.com/home/printpaper?appID=XXX&ak=XXX&timestamp=2017-11-20 14:43:56&deviceID=XXX&bindID=XXXXXX&printcontent=T:dGVzdA==

                                          bei Punkt 8 bekomme ich
                                          {"showapi_res_code":0,"showapi_res_error":"Not a valid bind device"}

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

                                          @mcchickents :
                                          Du hast du bindid aus link nr. 1 benutzt, oder ?

                                          Dann scheint deine BindID vielleicht nicht zu passen... ist nur ein Versuch : erhöhe die Zahl mal um 1:
                                          zb.Bind ID: 806938 ---> 806939 und trage diese mal ein und teste erneut... Ich denke, es ist so wie @sebastian-io meinte, ist nur ne Kleinigkeit, die nicht passt.. aber den muss man erst mal finden

                                          M 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

                                          352

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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