Ankündigung

Einklappen
Keine Ankündigung bisher.

Anfängerprobleme Temp/Hum Sensor

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Jetzt das nächste Problem...

    irgendwie geht er zwar in den Prog Mode (LED leuchtet, wenn Debug an ist auch dort angezeigt), aber die Suite erkennt ihn nicht.
    Was mach ich falsch?

    Progmode wird im Setup durch
    Konnekting.setProgState(true);
    gesetzt

    Code:
    [Programmiere] Bitte 'Programmieren' Knopf drücken...
    [Programmiere] Ein Fehler ist aufgetreten.
    de.konnekting.deviceconfig.ProgramException: Problem writing individual address
    at de.konnekting.deviceconfig.Program.program(Program .java:122)
    at de.konnekting.suite.ProgramDialog$4.run(ProgramDia log.java:192)
    at java.lang.Thread.run(Thread.java:745)
    at de.konnekting.suite.BackgroundTask$1.run(Backgroun dTask.java:59)
    Caused by: de.root1.slicknx.KnxException: Can not set address. no device in prog mode
    at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w riteIndividualAddress(ProgProtocol0x00.java:384)
    at de.konnekting.mgnt.KonnektingManagement.writeIndiv idualAddress(KonnektingManagement.java:70)
    at de.konnekting.deviceconfig.Program.program(Program .java:118)
    ... 3 more
    
    [Programmiere] Fertig! Dauer: 11577 ms

    Kommentar


      #47
      Suite im debug Mode gestartet ?
      OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

      Kommentar


        #48
        Prima, läuft, danke.

        Programmiert ist, aber jetzt schreibt er keinen Wert aufn Bus...
        Hier ist mein loop(), habs versucht so simpel zu halten wie nur möglich.

        Wie kann ich checken, ob er die ganzen Daten noch hat nach nem Neustart?
        Oder wie kann ich die GA und PA direkt ins Sketch File schreiben? (ja ich weiss das geht am Ziel vorbei)


        Code:
        void loop()
        {
        
        // Do KNX related stuff (like sending/receiving KNX telegrams)
        // This is required in every KONNEKTING aplication sketch
        Knx.task();
        
        
        /*
        * only do measurements and other sketch related stuff if not in programming mode
        * means: only when konnekting is ready for appliction
        */
        if (Konnekting.isReadyForApplication())
        {
        SerialUSB.print(hdc1080.readTemperature());
        Knx.write(COMOBJ_temperature,hdc1080.readTemperatu re());
        delay(5000);
        }
        }
        Zuletzt geändert von Freeman; 27.12.2020, 13:34.

        Kommentar


          #49
          Zeit den debug Console output, von Anfang an.
          OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

          Kommentar


            #50
            Das delay muss hier raus. Delays darf es nirgends mehr geben. Das zyklische Senden musst du über millis() machen.
            www.smart-mf.de | KNX-Klingel | GardenControl | OpenKNX-Wiki

            Kommentar


              #51
              //edit4

              habe jetzt aus nem anderen Thread die Parameter direkt gecodet und nun gehts. also hat er einfach nicht gescheit in den Speicher geschrieben. Ka wo da mein Fehler ist


              //edit3

              ich bekomme ihn wohl nicht in den Status readyforApplication = true

              //edit2
              ok dass die Prog LED nicht ausgeht lag an pinMode(PROG_BUTTON_PIN, INPUT_PULLUP);
              jetzt geht sie zwar aus, wenn ich den Button drücke, aber nicht von alleine nach dem Parametrieren.
              Auch bleibt weiter, dass kein Telegramm gesendet wird

              //edit
              So... klappt im Monitor am USB mit millis
              - debug modus aus
              - USB ab
              - 3V3+GND an den SAMD angeklemmt
              - Prog LED geht an
              - Programmieren über Suite läuft (hab unten den Auszug aktualisiert. Dort befindet sich nur noch Start der Suite und der eine Programmiervorgang)
              - Prog LED bleibt leider an
              - keine Ausgabe aufm Gruppenmonitor zu sehen (ETS)

              Wo liegt mein Fehler? (Sketch hängt ganz unten... ist etwas Chaotisch, weil zusammenkopiert)








              -------------------

              Zitat von Masifi Beitrag anzeigen
              Das delay muss hier raus. Delays darf es nirgends mehr geben. Das zyklische Senden musst du über millis() machen.
              ok, hatte das delay drin, weil ich die ganze millis() Geschichte nicht verstanden hab. Hast du ne Quelle wo ich was dazu nachlesen kann oder ein Beispiel, das ich mir "klauen" kann? (streich das... hab gesehen, dass es keine Funktion von euch ist...)
              Wollte auch erst mal einfach dass es funktioniert.



              Zitat von SirSydom Beitrag anzeigen
              Zeit den debug Console output, von Anfang an.
              welchen meinst du? von der Suite? da sagt er ja, dass es einwandfrei Programmiert wurde.

              Code:
              ENABLING LOGGING with level: ALL
              Using log folder: C:/Users/User/Downloads/KONNEKTING Suite/.
              ENABLING LOGGING *DONE*
              2020-12-27 14:37:08.607 INFO [main] de.konnekting.suite.Main.main: Locale: de_DE
              2020-12-27 14:37:08.750 INFO [main] de.konnekting.suite.Main.main: LaF Name: 'Metal'
              2020-12-27 14:37:08.750 INFO [main] de.konnekting.suite.Main.main: LaF Name: 'Nimbus'
              2020-12-27 14:37:09.025 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: groupmonitor.startSelected=false
              2020-12-27 14:37:09.026 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: groupmonitor.windowwidth=1859
              2020-12-27 14:37:09.028 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: knx.tunneling.ip=192.168.211.18
              2020-12-27 14:37:09.029 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: topsplitpanedividerlocation=180
              2020-12-27 14:37:09.031 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: groupmonitor.autoscrollSelected=true
              2020-12-27 14:37:09.032 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: groupmonitor.windowy=588
              2020-12-27 14:37:09.032 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: groupmonitor.windowx=481
              2020-12-27 14:37:09.038 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: knx.individualaddress=1.0.254
              2020-12-27 14:37:09.040 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: groupmonitor.windowheight=440
              2020-12-27 14:37:09.040 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: bottomsplitpanedividerlocation=303
              2020-12-27 14:37:09.050 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: windowheight=1562
              2020-12-27 14:37:09.051 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: knx.routing.networkinterface=lo
              2020-12-27 14:37:09.052 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: knx.tpuart.device=COM3
              2020-12-27 14:37:09.052 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: windowwidth=2582
              2020-12-27 14:37:09.053 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: windowy=-11
              2020-12-27 14:37:09.054 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: windowx=-11
              2020-12-27 14:37:09.055 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: startup.askfolder=true
              2020-12-27 14:37:09.059 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: knx.access=TUNNELING
              2020-12-27 14:37:09.060 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: projectfolder=Y:\Haus\KNX\Konnekting\TempHumSensor
              2020-12-27 14:37:09.065 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: knx.routing.multicast=224.0.23.12
              2020-12-27 14:37:09.066 INFO [Load properties] de.konnekting.suite.Main.loadProperties: Property: startup.lastfolder=false
              2020-12-27 14:37:12.405 INFO [AWT-EventQueue-0] de.konnekting.suite.Main.<init>: KONNEKTING Suite - Version 1.0.0-BETA4 Build 2016-10-10_18-18-18 DEBUG MODE!
              2020-12-27 14:37:12.411 INFO [AWT-EventQueue-0] de.konnekting.suite.Main.<init>: Running on: Windows 10
              2020-12-27 14:37:12.451 FINE [BackgroundTask(1) 'Verbinde mit KNX'] de.konnekting.suite.BackgroundTask$1.run: Begin task(1) 'Verbinde mit KNX'
              2020-12-27 14:37:12.928 INFO [BackgroundTask(1) 'Verbinde mit KNX'] de.konnekting.suite.Main.connectKnx: Starting in TUNNELING mode: 1.0.254@192.168.211.18
              2020-12-27 14:37:13.019 FINE [BackgroundTask(1) 'Verbinde mit KNX'] de.konnekting.suite.BackgroundTask$1.run: Finished task(1) 'Verbinde mit KNX' in 568 ms.
              2020-12-27 14:37:16.211 FINE [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.suite.BackgroundTask$1.run: Begin task(2) 'Íffne Projekt 'TempHumSensor''
              2020-12-27 14:37:16.656 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.f illDefaults: Filling defaults in file Y:\Haus\KNX\Konnekting\TempHumSensor\Free_TempHumS ensor.kconfig.xml
              2020-12-27 14:37:16.667 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.f illDefaults: Setting active/inactive flags for com objects
              2020-12-27 14:37:16.670 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #0
              2020-12-27 14:37:16.671 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #1
              2020-12-27 14:37:16.672 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #2
              2020-12-27 14:37:16.673 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.suite.Main.onEvent: Added device: 1.1.147 Free TempHumSensor@Y:\Haus\KNX\Konnekting\TempHumSensor \Free_TempHumSensor.kconfig.xml
              2020-12-27 14:37:16.674 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.suite.ProjectSaver.add: Added dirty: 1.1.147 Free TempHumSensor@Y:\Haus\KNX\Konnekting\TempHumSensor \Free_TempHumSensor.kconfig.xml -> 1790008544
              2020-12-27 14:37:16.708 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.f illDefaults: Filling defaults in file Y:\Haus\KNX\Konnekting\TempHumSensor\Free_TempHumS ensor_1.kconfig.xml
              2020-12-27 14:37:16.708 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.f illDefaults: Setting active/inactive flags for com objects
              2020-12-27 14:37:16.710 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #0
              2020-12-27 14:37:16.711 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #1
              2020-12-27 14:37:16.712 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.suite.Main.onEvent: Added device: 1.2.147 Free TempHumSensor@Y:\Haus\KNX\Konnekting\TempHumSensor \Free_TempHumSensor_1.kconfig.xml
              2020-12-27 14:37:16.713 INFO [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.suite.ProjectSaver.add: Added dirty: 1.2.147 Free TempHumSensor@Y:\Haus\KNX\Konnekting\TempHumSensor \Free_TempHumSensor_1.kconfig.xml -> 327228410
              2020-12-27 14:37:16.717 FINE [BackgroundTask(2) 'Íffne Projekt 'TempHumSensor''] de.konnekting.suite.BackgroundTask$1.run: Finished task(2) 'Íffne Projekt 'TempHumSensor'' in 511 ms.
              2020-12-27 14:37:17.173 INFO [Timer-0] de.konnekting.suite.StatusPanel$1.run: Clear status message
              2020-12-27 14:37:18.256 FINEST [AWT-EventQueue-0] de.konnekting.suite.DeviceList.selectionChanged: Device selection changed: 1
              2020-12-27 14:37:18.257 INFO [AWT-EventQueue-0] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #0
              2020-12-27 14:37:18.258 INFO [AWT-EventQueue-0] de.konnekting.suite.CommObjectTableModel.refreshCo mmObjVisibility: 0: Air Temperature is enabled
              2020-12-27 14:37:18.259 INFO [AWT-EventQueue-0] de.konnekting.deviceconfig.DeviceConfigContainer.i sCommObjectEnabled: Testing co #1
              2020-12-27 14:37:18.260 INFO [AWT-EventQueue-0] de.konnekting.suite.CommObjectTableModel.refreshCo mmObjVisibility: 1: Relative Air Humidity is enabled
              2020-12-27 14:37:18.261 INFO [AWT-EventQueue-0] de.konnekting.suite.CommObjectTableModel.refreshCo mmObjVisibility: Sort by enabled/disabled: 2 vs. 0
              2020-12-27 14:37:18.263 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterPanel.updateGroupsInL ist: refresing groups in list
              2020-12-27 14:37:18.263 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterPanel.updateGroupsInL ist: Selected element is: -1 - null
              2020-12-27 14:37:18.270 INFO [AWT-EventQueue-0] de.konnekting.deviceconfig.DeviceConfigContainer.i sParameterGroupEnabled: Testing paramgroup #0
              2020-12-27 14:37:18.273 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterPanel.updateGroupsInL ist: Selecting first index
              2020-12-27 14:37:18.274 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterList.onEvent: Selected Group: id=0 name=KNX Sending params=2
              2020-12-27 14:37:18.327 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterList.onEvent: Group[0@KNX Sending]: Adding param: 0@cyclic_send_rate_temperature
              2020-12-27 14:37:18.334 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterList.onEvent: Group[0@KNX Sending]: Adding param: 1@cyclic_send_rate_humidity
              2020-12-27 14:37:18.339 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterList.refreshParameter Visibility: refresing visibility
              2020-12-27 14:37:18.340 INFO [AWT-EventQueue-0] de.konnekting.deviceconfig.DeviceConfigContainer.i sParameterEnabled: Testing param #0
              2020-12-27 14:37:18.341 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterListItem.updateParame terVisibility: Setting param #0 to visible=true
              2020-12-27 14:37:18.342 INFO [AWT-EventQueue-0] de.konnekting.deviceconfig.DeviceConfigContainer.i sParameterEnabled: Testing param #1
              2020-12-27 14:37:18.343 INFO [AWT-EventQueue-0] de.konnekting.suite.ParameterListItem.updateParame terVisibility: Setting param #1 to visible=true
              2020-12-27 14:37:18.406 FINEST [AWT-EventQueue-0] de.konnekting.suite.DeviceList.selectionChanged: Device selection changed: 1
              2020-12-27 14:37:21.019 INFO [AWT-EventQueue-0] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.g etInstance: ###### RUNNING DEBUG MODE #######
              2020-12-27 14:37:21.043 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.suite.BackgroundTask$1.run: Begin task(3) '[Programmiere]'
              2020-12-27 14:37:21.046 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: About to write physical address '1.2.147'. Please press 'program' button on target device NOW ...
              2020-12-27 14:37:21.056 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgReadDeviceInfo{individualAddress=1.2.147}
              2020-12-27 14:37:21.058 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 01
              data[2..13] : 12 93 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:21.103 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAnswerDeviceInf o]
              2020-12-27 14:37:21.105 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:26.113 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgReadIndividualAddress{}
              2020-12-27 14:37:26.115 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 15
              data[2..13] : 00 00 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:26.156 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=false
              2020-12-27 14:37:26.214 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: AnswerIndividualAddress{individualAddress=1.1.254}
              2020-12-27 14:37:27.174 INFO [Timer-0] de.konnekting.suite.StatusPanel$1.run: Clear status message
              2020-12-27 14:37:31.223 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w riteIndividualAddress: responsed: 1
              2020-12-27 14:37:31.223 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w riteIndividualAddress: KONNEKTINGs in programming mode: 1
              2020-12-27 14:37:31.226 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w riteIndividualAddress: Writing address ...
              2020-12-27 14:37:31.230 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteIndividualAddress{individualAddress=1.2.14 7}
              2020-12-27 14:37:31.232 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 14
              data[2..13] : 12 93 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:31.276 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:31.277 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:31.349 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:31.351 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.startProgr amming: Set programming mode = true
              2020-12-27 14:37:31.352 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteProgrammingMode{individualAddress=1.2.147, progMode=true}
              2020-12-27 14:37:31.354 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 0a
              data[2..13] : 12 93 01 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:31.412 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:31.413 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:31.471 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:31.472 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.startProgr amming: Checking for devices in prog mode
              2020-12-27 14:37:31.474 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgReadProgrammingMode{}
              2020-12-27 14:37:31.476 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 0b
              data[2..13] : 00 00 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:31.521 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=false
              2020-12-27 14:37:31.574 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: AnswerProgrammingMode{1.2.147}
              2020-12-27 14:37:36.580 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.startProgr amming: Reading device info ...
              2020-12-27 14:37:36.580 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgReadDeviceInfo{individualAddress=1.2.147}
              2020-12-27 14:37:36.583 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 01
              data[2..13] : 12 93 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:36.625 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAnswerDeviceInf o]
              2020-12-27 14:37:36.627 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:36.681 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: AnswerDeviceInfo{manufacturerId=0x0015, deviceId=0x15, revisionId=0x00}
              2020-12-27 14:37:36.683 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.startProgr amming: Got device info: DeviceInfo{manufacturerId=21, deviceId=21, revisionId=0, deviceFlags=1111111, individualAddress=1.2.147}
              2020-12-27 14:37:36.684 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Writing commobjects ...
              2020-12-27 14:37:36.687 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Writing ComObject: id=0 ga=5/4/38 active=true
              2020-12-27 14:37:36.689 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.writeComOb ject: Writing ComObject
              2020-12-27 14:37:36.699 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteComObject{id=0x00, ga=5/4/38, ga(hex)=0x2C26, settings=0x80}
              2020-12-27 14:37:36.711 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 28
              data[2..13] : 00 2c 26 80 00 00 00 00 00 00 00 00
              2020-12-27 14:37:36.753 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:36.754 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:36.827 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:36.828 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Writing ComObject: id=1 ga=5/5/36 active=true
              2020-12-27 14:37:36.834 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.writeComOb ject: Writing ComObject
              2020-12-27 14:37:36.836 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteComObject{id=0x01, ga=5/5/36, ga(hex)=0x2D24, settings=0x80}
              2020-12-27 14:37:36.854 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 28
              data[2..13] : 01 2d 24 80 00 00 00 00 00 00 00 00
              2020-12-27 14:37:36.895 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:36.896 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:36.969 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:36.971 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Writing parameter ...
              2020-12-27 14:37:36.974 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Writing 1E to param with id 0
              2020-12-27 14:37:36.978 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.writeParam eter: Writing parameter #0
              2020-12-27 14:37:36.979 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteParameter{id=0x00, data=[001E001E00000000000000000000]}
              2020-12-27 14:37:36.981 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 1e
              data[2..13] : 00 1e 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:37.028 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:37.030 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:37.089 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:37.091 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Writing 1E to param with id 1
              2020-12-27 14:37:37.097 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.KonnektingManagement.writeParam eter: Writing parameter #1
              2020-12-27 14:37:37.101 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteParameter{id=0x01, data=[001E011E00000000000000000000]}
              2020-12-27 14:37:37.135 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 1e
              data[2..13] : 01 1e 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:37.182 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:37.183 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:37.245 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:37.246 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Stopping programming
              2020-12-27 14:37:37.264 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: MsgWriteProgrammingMode{individualAddress=1.2.147, progMode=false}
              2020-12-27 14:37:37.269 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 0a
              data[2..13] : 12 93 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:37.310 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage: Waiting for single message [de.konnekting.mgnt.protocol0x00.MsgAck]
              2020-12-27 14:37:37.310 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w aitForMessage: Waiting for message. timeout=5000 returnOnFirst=true
              2020-12-27 14:37:37.367 INFO [Calimero link notifier] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00$1 .write: Received message: ACK{type=ACK errorCode=0x00 indexInformation=0x00}
              2020-12-27 14:37:37.370 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: Restart device
              2020-12-27 14:37:37.377 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending: Restart{1.2.147}
              2020-12-27 14:37:37.380 FINEST [BackgroundTask(3) '[Programmiere]'] de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.s endMessage: Sending message
              ProtocolVersion: 00
              MsgTypeId : 09
              data[2..13] : 12 93 00 00 00 00 00 00 00 00 00 00
              2020-12-27 14:37:37.421 INFO [BackgroundTask(3) '[Programmiere]'] de.konnekting.deviceconfig.Program.program: All done.
              2020-12-27 14:37:37.449 FINE [BackgroundTask(3) '[Programmiere]'] de.konnekting.suite.BackgroundTask$1.run: Finished task(3) '[Programmiere]' in 16418 ms.


              Code:
              #include <KonnektingDevice.h>
              #include <ClosedCube_HDC1080.h>
              
              // include device related configuration code, created by "KONNEKTING CodeGenerator"
              #include "kdevice_temphumsensor.h"
              
              // ################################################
              // ### BOARD CONFIGURATION
              // ################################################
              
              
              
              #ifdef ARDUINO_ARCH_SAMD
              // Zero/M0
              #define KNX_SERIAL Serial1 // D0=RX/D1=TX
              #define PROG_LED_PIN 11 // External LED
              #define TEST_LED LED_BUILTIN // On board LED on pin D13
              #define PROG_BUTTON_PIN 3 // pin with interrupt
              #define DEBUGSERIAL SerialUSB // USB port
              // Arduino Zero has no "real" internal EEPROM,
              // so we can use an external I2C EEPROM.
              #include "EEPROM_24AA256.h" // external EEPROM
              ClosedCube_HDC1080 hdc1080;
              
              #else
              // All other boards
              #error "Sorry, you board is not supported"
              #endif
              
              // ################################################
              // ### DEBUG CONFIGURATION
              // ################################################
              //#define KDEBUG // comment this line to disable DEBUG mode
              #ifdef KDEBUG
              #include <DebugUtil.h>
              #endif
              
              // ################################################
              // ### Global variables, sketch related
              // ################################################
              uint8_t param_cyclic_send_rate;
              unsigned long lastmillis = millis();
              
              // ################################################
              // ### set ProgLED status
              // ################################################
              //this function is used to indicate programming mode.
              //you can use LED, LCD display or what ever you want...
              void progLed(bool state)
              {
              digitalWrite(PROG_LED_PIN, state);
              }
              
              
              // ################################################
              // ### SETUP
              // ################################################
              
              void setup()
              {
              
              // debug related stuff
              #ifdef KDEBUG
              // Start debug serial with 115200 bauds
              DEBUGSERIAL.begin(115200);
              while (!DEBUGSERIAL)
              
              // make debug serial port known to debug class
              // Means: KONNEKTING will use the same serial port for console debugging
              Debug.setPrintStream(&DEBUGSERIAL);
              #endif
              
              
              Konnekting.setMemoryReadFunc(&readMemory);
              Konnekting.setMemoryWriteFunc(&writeMemory);
              Konnekting.setMemoryUpdateFunc(&updateMemory);
              Konnekting.setMemoryCommitFunc(&commitMemory);
              hdc1080.begin(0x40);
              
              
              
              
              
              // Initialize KNX enabled Arduino Board
              Konnekting.init(KNX_SERIAL,
              PROG_BUTTON_PIN,
              PROG_LED_PIN,
              MANUFACTURER_ID,
              DEVICE_ID,
              REVISION);
              
              
              // pinMode(PROG_BUTTON_PIN, INPUT_PULLUP);
              
              /*
              if(!digitalRead(PROG_BUTTON_PIN))
              {
              Debug.println(F("Jumper set to ProgMode. Starting programming mode..."));
              Konnekting.setProgState(true);
              }*/
              if (!Konnekting.isFactorySetting())
              {
              param_cyclic_send_rate = (uint8_t)Konnekting.getUINT8Param(PARAM_cyclic_sen d_rate_temperature);
              Konnekting.setProgState(false);
              }
              else
              {
              Debug.println(F("Device is in factory mode. Starting programming mode..."));
              //Konnekting.setProgState(true);
              }
              
              
              }
              
              
              
              
              
              // ################################################
              // ### LOOP
              // ################################################
              
              void loop()
              {
              
              // Do KNX related stuff (like sending/receiving KNX telegrams)
              // This is required in every KONNEKTING aplication sketch
              Knx.task();
              
              /*
              * only do measurements and other sketch related stuff if not in programming mode
              * means: only when konnekting is ready for appliction
              */
              if (Konnekting.isReadyForApplication())
              {
              if (calculateElapsedMillis(lastmillis, millis())>=5000)
              {
              //SerialUSB.print(hdc1080.readTemperature());
              Knx.write(COMOBJ_temperature,hdc1080.readTemperatu re());
              lastmillis = millis();
              }
              }
              }
              
              
              unsigned long calculateElapsedMillis(unsigned long lastrunMillis, unsigned long currentMillis)
              {
              if(currentMillis >= lastrunMillis)
              return currentMillis-lastrunMillis;
              else // this means, there was an overflow
              return (0xFFFFFFFF-lastrunMillis)+currentMillis;
              }
              
              
              // ################################################
              // ### KNX EVENT CALLBACK
              // ################################################
              
              void knxEvents(byte index)
              {
              switch (index)
              {
              
              default:
              break;
              }
              };
              Zuletzt geändert von Freeman; 27.12.2020, 19:22.

              Kommentar


                #52
                Zitat von Freeman Beitrag anzeigen
                Sketch hängt ganz unten... ist etwas Chaotisch
                Kann ich nur bestätigen. Gewöhne dir bitte das Einrücken an. Macht den Code auch für dich übersichtlicher.

                Zitat von Freeman Beitrag anzeigen
                if(!digitalRead(PROG_BUTTON_PIN))
                Wozu? Wenn dein Gerät im factory mode ist, wird es doch durch
                Zitat von Freeman Beitrag anzeigen
                //Konnekting.setProgState(true);
                in den Programmiermodus versetzt, zumindest wenn du es nicht auskommentierst. Hast du erst einmal die physikalische Adresse im Gerät, dann kannst du es auch ohne Prog-Taster umkonfigurieren. Ansonsten wird der Prog-Taster in der Lib behandelt. Du musst dich darum gar nicht kümmern.

                Die Function calculateElapsedMillis ist eigentlich überflüssig. Ein (millis()-lastmillis>5000) hat bei mir immer funktioniert.
                Zuletzt geändert von Albatros62; 03.01.2021, 11:27.

                Kommentar


                  #54
                  Hat dein Zero-Board eigentlich ein EEPROM?

                  Kommentar


                    #55
                    Guter Hinweis von Albatros62 :

                    Dein Sketch definiert ein externes EEPROM (siehe #include "EEPROM_24AA256.h" // external EEPROM), das dein SAMDMini nicht hat (denke ich). Dadurch wird deine Konfiguration beim Programmieren per ETS nicht abgespeichert. Dieses #include bitte auskommentieren.

                    Beim Zero wird ein EEPROM im Flash simuliert, dafür brauchst du folgendes:


                    Code:
                     [TABLE]
                     	 		[TR="class: cke_show_border"]
                     			[TD]#include "FlashAsEEPROM.h" //[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD] [/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD] [/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]byte readMemory(int index) {[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]return EEPROM.read(index);[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]}[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD] [/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]void writeMemory(int index, byte val) {[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]EEPROM.write(index, val);[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]}[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD] [/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]void updateMemory(int index, byte val) {[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]if (readMemory(index) != val) {[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]writeMemory(index, val);[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]}[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]}[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD] [/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]void commitMemory() {[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]EEPROM.commit();[/TD]
                     		[/TR]
                     		[TR="class: cke_show_border"]
                     			[TD] [/TD]
                     			[TD]}[/TD]
                     		[/TR]
                     	 [/TABLE]
                    (sorry für die Formatierung)

                    Das Repo bekommst du auf der Github Seite von Konnekting (vielleicht auch wo anders, weiß ich nicht)

                    Kommentar

                    Lädt...
                    X