Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Projekt] Integr. Cubinote - Alexa Sprache drucken - Listen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

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

      @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 Reply Last reply Reply Quote 0
      • M
        mcchickents @Agria4800 last edited by

        @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

        Agria4800 1 Reply Last reply Reply Quote 0
        • Agria4800
          Agria4800 @mcchickents last edited by 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 1 Reply Last reply Reply Quote 0
          • Sebastian IO
            Sebastian IO @Agria4800 last edited by

            @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);
               }
            
            });
            
            Agria4800 1 Reply Last reply Reply Quote 0
            • M
              mcchickents @Agria4800 last edited by 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 IO 1 Reply Last reply Reply Quote 0
              • Sebastian IO
                Sebastian IO @mcchickents last edited by 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 1 Reply Last reply Reply Quote 0
                • M
                  mcchickents @Sebastian IO last edited by

                  @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 IO 1 Reply Last reply Reply Quote 0
                  • Sebastian IO
                    Sebastian IO @mcchickents last edited by 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 1 Reply Last reply Reply Quote 0
                    • M
                      mcchickents @Sebastian IO last edited by

                      @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 IO 1 Reply Last reply Reply Quote 0
                      • Sebastian IO
                        Sebastian IO @mcchickents last edited by

                        @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 Replies Last reply Reply Quote 0
                        • M
                          mcchickents @Sebastian IO last edited by

                          @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 IO 1 Reply Last reply Reply Quote 0
                          • Sebastian IO
                            Sebastian IO @mcchickents last edited by

                            @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 Reply Last reply Reply Quote 0
                            • M
                              mcchickents @Sebastian IO last edited by

                              @sebastian-io nein druckt er nicht

                              Sebastian IO 1 Reply Last reply Reply Quote 0
                              • Sebastian IO
                                Sebastian IO @mcchickents last edited by

                                @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 Reply Last reply Reply Quote 0
                                • M
                                  mcchickents @Sebastian IO last edited by

                                  @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 IO 1 Reply Last reply Reply Quote 0
                                  • Sebastian IO
                                    Sebastian IO @mcchickents last edited by

                                    @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 Reply Last reply Reply Quote 0
                                    • M
                                      mcchickents @Sebastian IO last edited by 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

                                      Agria4800 1 Reply Last reply Reply Quote 0
                                      • Agria4800
                                        Agria4800 @mcchickents last edited by 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 1 Reply Last reply Reply Quote 0
                                        • Agria4800
                                          Agria4800 @Sebastian IO last edited by Agria4800

                                          @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 😀 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 Reply Last reply Reply Quote 1
                                          • M
                                            mcchickents @Agria4800 last edited by

                                            @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"}

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            559
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            65
                                            5190
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo