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.
    • 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
                • Agria4800
                  Agria4800 @mcchickents last edited by Agria4800

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

                    @agria4800

                    so fortschritt 🙂

                    Status vom Drucker ist hergestellt. Habe nochmal alles gelöscht. Iobroker neu gestartet und neu angefangen nun geht es.

                    Text drucken aus variable geht auch schon^^

                    Jetzt fehlt nur noch das Drucken der Listen. Ich ändere aktuell den Status manuell im Iobroker von false auf true. true bleibt stehen es wird nur leider noch nix gedruckt. Vieleicht habt ihr zwei auch noch eine idee an was das liegen kann. Ich sag schonmal vielen dank bis hier her:-)

                    gruss Julian

                    1 Reply Last reply Reply Quote 0
                    • M
                      mcchickents last edited by

                      Es geht alles.

                      Vielen lieben dank euch zwei.

                      Schönen abend euch noch.

                      Gruss Julian

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

                        @mcchickents: sauber, super, nie aufgeben und immer dran bleiben...👍
                        Für mich war das auch das erste "komplizierte Project als nicht programmiererfahrerner Laborant 😉 aber nach über 2 Jahren Iobroker traut man sich irgendwann immer mehr....

                        M T 2 Replies Last reply Reply Quote 1
                        • M
                          mcchickents @Agria4800 last edited by

                          @agria4800 ja immer weiter machen irgentwann kalppt es schon^^.

                          ich habe noch das problem das er die einkaufliste und die doto liste zweimal hintereinader druckt^^. mal schauen wie ich das weg bekomme.

                          1 Reply Last reply Reply Quote 1
                          • T
                            ThorstenStr @Agria4800 last edited by

                            @agria4800
                            Hallo, ich klinke mich mal ein, habe die ganze Zeit im hintergrund still mit gelesen und bin gerade dabei das ganze auch um zu setzten.
                            Da ich leider mit den Skripten im ioBroker noch nicht viel gemacht habe, habe ich hier ein Paar verständnissfragen.
                            Das Sammel der Daten hat soweit geklappt, ich kann über die API (Link) auch Drucken. Die Datenpunkte sind angelegt und auch entsprechend gefüllt.
                            Jetzt zu den Skripten. Hier bin ich mir nicht sicher ob ich alles richtig gemacht habe, muss von den DP nicht irgendwo ein Bezug zu dem jeweiligen Script sein? ist die Namensgebung der Scripte wichtig?
                            Egal welche tests ich im ioBroker mache, der Drucker zuckt sich nicht. Könnt Ihr mir hier weiter helfen?

                            Hier ein Screenshot der DP und der angelegten Scripte:
                            screenshot.JPG

                            dankeschön 😉

                            Agria4800 1 Reply Last reply Reply Quote 0
                            • Agria4800
                              Agria4800 @ThorstenStr last edited by Agria4800

                              @thorstenstr Eigentlich musst du nix einrichten, die Scripte von Sebastion-io sind einsatzbereit bis auf die Echo ID (aber nur für die Ansage durch Alexa)

                              Der Pfad ist bei dir auch so: alexa2.0.Lists.SHOPPING_LIST?

                              Geht der DP wieder zurück auf false nach 2 sek. ? 0_userdata.0.cubinote.actionStates.print_shoppinglist_state

                              Hast du das letzte Scritp von Ihm mal getestet --> Notizen drucken ?

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                ThorstenStr @Agria4800 last edited by

                                @agria4800 Ja, der Pfad zur Shoppinglist passt bei mir.
                                der DP bleibt bei mir auf True stehen wenn ich ihn setze.
                                shoppinglist.JPG

                                ich bin mir nicht sicher ob ich die Scripte richtig angelegt habe.
                                [+] Neues Script -> Javascript -> einen Namen vergeben (egal welcher?) -> Inhalt in das Script kopiert und aktiviert.
                                passt das so ?

                                Agria4800 1 Reply Last reply Reply Quote 0
                                • Agria4800
                                  Agria4800 @ThorstenStr last edited by

                                  @thorstenstr: Ja, das passt so.

                                  Villeicht einen past & copy fehler, lege das Script nochmal neu an und kopiere es aus dem Forum neu.

                                  Analog bitte auch mal das probieren aus dem post --> 7. Apr. 2021, 17:28
                                  DP: 0_userdata.0.cubinote.Notizen.notizenText
                                  Das hier kannst du noch in das script einfügen, dann erstellt er dir auch den DP

                                  createState('0_userdata.0.cubinote.Notizen.notizenText', {name: 'Text drucken', type: 'string', def: '0',unit: '', desc: 'Beschreibung', role: 'value'});
                                  
                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    ThorstenStr @Agria4800 last edited by

                                    @agria4800 Vielen Dank.
                                    Ich weiss nicht was ich das erste mal falsch gemacht habe, aber nachdem ich die DP neu erstellt habe, stehen diese in den Objekten auch ganz oben und nicht mehr unter Javascript.
                                    Auf jeden Fall funktioniert jetzt auch alles.
                                    Dankeschön 😉

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

                                      @sebastian-io Hallo, ich bin von deinem Projekt so begeistert, dass ich mir auch gleich einen Cubinote bestellt habe. Leider bevor ich richtig mit einsteigen kann, ist das Projekt vielleicht schon zu Ende, außer wenn du noch einen genialen Tipp für mich hast ?
                                      Zum Problem: Heute ist der Cubinote geliefert wurden und ich kann mir die größte Mühe geben, ich bekomme den Cubinote nicht mit der Android-App zum Laufen. Ich habe das 5Ghz in meiner Fritzbox abgeschaltet und sogar das WLAN-Passwort auf ganz einfach ohne Sonderzeichen geändert. Ich habe den automatischen, wie auch den manuellen Weg probiert. Einmal kam sogar auf dem Ausdruck ein "connected" raus, aber trotzdem konnte ich nicht über die App einen Text drucken. Jedes mal wird der Drucker als Offline angezeigt. Langsam bin ich mit meinem Latein am Ende ...
                                      Kann der Drucker auch ohne App auf Auslieferungszustand zurück gesetzt werden ?
                                      Ich bin so weit, dass der Drucker sonst wieder zurück geht. Vielleicht habe ich ja auch ein "Montagsmodell" erwischt 😖
                                      Vielleicht hast du ja noch eine Idee ?
                                      Gruß,
                                      Legoracer

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

                                        @legoracer70 moin ich kann dir da leider auch nicht so richtig weiterhelfen, mein glück war dass ich noch ein altes smartphone hatte und damit mich mit dem cubinote im 2,4Ghz WLAN verbinden konnte. Der Rest wie man einen Reset macht, müsste ja irgendwo in der Beschreibung/Handbuch stehen. Aber ich kann mich auch erinnern dass es nicht so einfach war den cubinote mit ins wlan zubringen. Evtl. mal im Router schauen ob der Cubinote auftaucht, aber wie gesagt, das kann an vielem liegen.

                                        Sorry!

                                        L 3 Replies Last reply Reply Quote 0
                                        • L
                                          Legoracer70 @Sebastian IO last edited by Legoracer70

                                          @sebastian-io Moin, die Situation hat sich gerade gewandelt. Es lag wohl doch an meinen Sonderzeichen im WLAN-Passwort. Damit ich nicht alle WLAN-Geräte mit einem neuen Passwort versorgen muss, habe ich noch einen alten WLAN-Repeater als AP in mein Netz gebracht, wo definitiv kein Sonderzeichen im Passwort vorkommt. Über diesen AP kommt nur noch mein Cubinote ins Netz und was soll ich sagen, es funktioniert endlich. Jetzt kann ich mit der Umsetzung deines Projektes beginnen 😊
                                          Vielen Dank schonmal für dein Feedback.
                                          Gruß,
                                          Legoracer

                                          1 Reply Last reply Reply Quote 1
                                          • L
                                            Legoracer70 @Sebastian IO last edited by

                                            @sebastian-io Hallo, die Umsetzung deines Projektes hat ganz gut funktioniert. Nur eins kann ich im Moment nicht nachvollziehen: Der Drucker druckt die Überschrift, z.B. Einkaufsliste, aber die Einträge aus der Liste werden nicht gedruckt. Ich kann in IO-Broker sehen, dass ich zur Zeit 5 Sachen auf meiner Einkaufsliste habe. Aber Keiner wird gedruckt.
                                            Hat jemand die rettende Idee ?

                                            Gruß,
                                            Legoracer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            810
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            65
                                            5193
                                            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