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. Skripten / Logik
  4. JavaScript
  5. Cubinote Drucker Bring Einkaufsliste drucken

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    5
    1
    46

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Cubinote Drucker Bring Einkaufsliste drucken

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 486 Aufrufe 2 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.
  • toniT Offline
    toniT Offline
    toni
    schrieb am zuletzt editiert von
    #1

    Hallo, leider kenne ich mich zu wenig aus. Vielleicht kann mir jemand dabei helfen, folgendes Script so anzupassen, das es möglich ist die Bring Einkaufsliste zu drucken. Cubinote Script.pdf
    Vielleicht kann ja jemand von den Profis helfen :-) .

    OliverIOO 1 Antwort Letzte Antwort
    0
    • toniT toni

      Hallo, leider kenne ich mich zu wenig aus. Vielleicht kann mir jemand dabei helfen, folgendes Script so anzupassen, das es möglich ist die Bring Einkaufsliste zu drucken. Cubinote Script.pdf
      Vielleicht kann ja jemand von den Profis helfen :-) .

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von OliverIO
      #2

      @toni

      do ist noch zuviele magic drin, was sich aus dem skript nicht ablesen lässt.
      was ist den bspw die 0_userdata.0.cubinote.apiurl
      ist das ein gerät oder ein service im internet?

      da eingebundenes pdf ebenso ungünstig ist wie ein screenshot, habe ich das mal hier mit spoiler eingebunden

      um mal die einkaufsliste zu bekommen, könntest du bei zeile 80 zumindest mal den Inhalt von
      printList in einen Datenpunkt schreiben.

      Das automatische Ansteuern eines Druckers ist nicht ganz so einfach, da es hier verschiedene Wege gibt die alle so ihre vor und Nachteile haben

      1. Browser
        Der Browser befindet sich in einer Sandbox und kann nicht automatisiert auf Geräte zugreifen.
        Aber du könntest eine Seite anzeigen (formatiert mit HTML oder unformatiert einfach nur Text und du drückst selber den Drcukknopf
      2. über Server an Drucker standard, als Text oder auch Datei (die muss aber erst generiert werden)
        Das ist ein wenig Betriebssystemabhängig. Du könntest eine node Bibliothekt verwenden, bei der du in einem Skript den entsprechenden Drucker angibts, ggfs konfigurierst (Seiteneinstellungen und all die anderen Optionen, die dir normalerweise beim Drucken zur Auswahl angeboten wird) und dann den Inhalt an den Drucker sendets. Ich gehe mal davon aus, das der Drucker im Betriebssystem schon vorkonfiguriert sein muss. Habe die Doku bspw von dieser Bibliothek nicht im Detail studiert.
        https://www.npmjs.com/package/node-native-printer
        oder
        https://www.npmjs.com/package/ipp

      const moment = require('moment');
      const fs = require('fs');
      var aApiSettings = {
          //Echo Gerät für Sprachausgabe
          'echodevice': 'alexa2.0.Echo-Devices.G090XG12211700GD',
          '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,
                          "pri
                          ntcontentid": 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;bitteschön!');
      
                          });
                      }
                  }
              });
              setStateDelayed(state, false, 2000, false);
          });
      

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      0
      • toniT Offline
        toniT Offline
        toni
        schrieb am zuletzt editiert von
        #3

        Zu erst danke... wenn du im Forum nach dem Cubinote Drucker suchst findest du eine Anleitung wie man damit Alexa Einkaufslisten bzw. ToDolisten drucken kann. Das sollte einige Fragen von dir beantworten.
        Danke soweit für die Hilfe.

        OliverIOO 1 Antwort Letzte Antwort
        0
        • toniT toni

          Zu erst danke... wenn du im Forum nach dem Cubinote Drucker suchst findest du eine Anleitung wie man damit Alexa Einkaufslisten bzw. ToDolisten drucken kann. Das sollte einige Fragen von dir beantworten.
          Danke soweit für die Hilfe.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #4

          @toni
          ich will aber ja nicht deinen kompletten lösungsweg nachvollziehen wollen nur um dir bei deinem detailproblem zu helfen. kostet ja alles ein wenig zeit, oder?

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          toniT 1 Antwort Letzte Antwort
          1
          • OliverIOO OliverIO

            @toni
            ich will aber ja nicht deinen kompletten lösungsweg nachvollziehen wollen nur um dir bei deinem detailproblem zu helfen. kostet ja alles ein wenig zeit, oder?

            toniT Offline
            toniT Offline
            toni
            schrieb am zuletzt editiert von
            #5

            @oliverio ja das stimmt, ich dachte es wäre eher leicht, das Alexa Script zu verwenden, leider hab ich zu wenig Ahnung und aus diesem Grund habe ich um Hilfe gebeten.
            Bitte versteh mich nicht falsch...

            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

            344

            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