# Gladys 4 - Entwicklung des Arduino-Dienstes

**URL:** <https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154>\
**Category:** Développement\
**Created:** [6. Januar 2020 um 11:34 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154 "2020-01-06T11:34:28Z")\
**Posts on this page:** 20\
**Page:** 7

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [25. Mai 2020 um 16:02 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/124 "2020-05-25T16:02:55Z")

</div>

Ah, aber du hast also von der eigentlichen Erkennung gesprochen? So etwas wie „wenn der Arduino einen bestimmten 433er-Code empfängt, dann wurde die Tür geöffnet“?

Denn das habe ich noch nicht codiert, aber die Features sind vorhanden und bereit zum Codieren 😄

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [25. Mai 2020 um 19:03 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/125 "2020-05-25T19:03:49Z")

</div>

Also, meiner Meinung nach ist alles gut für eine erste Version. Das Größte, was jetzt noch zu tun bleibt, sind die Tests! Nur ein kleiner Wermutstropfen… Ich habe Schwierigkeiten, die Funktionsweise der Tests zu verstehen 😅

Könnte eine gute Seele mir bitte helfen, diese Tests richtig zu schreiben?

Vielen Dank 😄

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [26. Mai 2020 um 08:33 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/126 "2020-05-26T08:33:29Z")

</div>

> [@billona](#):
>
> Du style „wenn der Arduino den Code 433 empfängt, dann wurde die Tür geöffnet“?
> 
> Denn das habe ich noch nicht codiert, aber die Features sind da und bereit zum Codieren 😄

Ja! Das ist nicht codiert? 😅 Es wäre vielleicht gut, wenn es vor einer Veröffentlichung funktioniert, sonst ist es wenig nützlich, es zu deployen 😃

> [@billona](#):
>
> Ich habe Schwierigkeiten, die Funktionsweise der Tests zu verstehen

Das Ziel der Tests ist es, den von dir geschriebenen Code auszuführen und das Ergebnis deines Codes zu testen.

Die Tests werden von CircleCI bei jedem Push auf das Gladys-Repo ausgeführt und ermöglichen es, zu überprüfen, dass der neue Code den alten Code nicht „kaputt“ macht.

Zum Beispiel, wenn du eine Funktion schreibst

```javascript
// lib/sum.js
function sum(a, b) {
   return a + b;
}

```

Möchtest du vielleicht einen Test schreiben, der überprüft, dass sum(1, 2) = 3 ist.

Dein Test könnte so aussehen:

```javascript
// test/sum.js
const { expect } = require('chai');
const sum = require('../lib/sum.js');

describe('sum', () => {
  it('should return 3', () => {
      const result = sum(1, 2);
      expect(result).to.equal(3);
  });
});

```

Wenn wir diesen Codeausschnitt ausführen, indem wir „mocha“ (das Test-Tool, das wir verwenden) starten, werden wir sehen:

✅should return 3

Stell dir jetzt vor, dass in naher Zukunft jemand unsere Funktion sum(a, b) kaputt macht und versehentlich das + durch ein \* ersetzt.

Bei der Ausführung der Tests würde der Test „should return 3“ 2 zurückgeben, und mocha würde schreien:

❌ should return 3  
Expected «&nbsp;2&nbsp;» to equal «&nbsp;3&nbsp;»

So würden wir wissen, dass dieser PR etwas kaputt macht.

Dieses Beispiel ist simplistisch, aber in der Realität ist es sehr nützlich. Denn du arbeitest jetzt am Arduino, aber was sagt mir das, dass du die Z-Wave-Integration nicht kaputt gemacht hast, während du die Arduino-Integration entwickelt hast? Die Tests 🙂

**Das Mocking**

Aber jetzt wirst du mir sagen: Ja, aber mein Code ruft über USB einen Arduino auf, wie mache ich das in meinen Tests?

Bei den Tests **wollen wir nicht mit der Außenwelt kommunizieren** : Es ist sinnlos, das Verhalten der Lib serialport zu testen, die selbst bereits Tests hat!

Wir werden also die Aufrufe an externe Bibliotheken „mocken“, indem wir eine Lib verwenden, die „proxyquire“ heißt ( [GitHub - thlorenz/proxyquire: 🔮 Proxies nodejs require in order to allow overriding dependencies during testing. · GitHub](https://github.com/thlorenz/proxyquire) )

Oder indem wir die Bibliothek selbst neu schreiben und alle Funktionsaufrufe durch Returns vereinfachen

Beispiel: Im Test des Z-Wave-Service habe ich die Lib openzwave in 28 Zeilen neu geschrieben:

[https://github.com/GladysAssistant/Gladys/blob/master/server/test/services/zwave/ZwaveMock.test.js](https://github.com/GladysAssistant/Gladys/blob/master/server/test/services/zwave/ZwaveMock.test.js)

Jede Funktion der Lib wird durch eine „fake“-Funktion ersetzt, die null zurückgibt.

Ich lade dich ein, die Tests aller anderen Integrationen (server/test/services) zu lesen und dich damit vertraut zu machen 🙂

Ein Tutorial könnte dir auch helfen:

> **[Testing Node.js with Mocha and Chai - LogRocket Blog](https://blog.logrocket.com/testing-node-js-mocha-chai/)**
>
> Commonly used with Chai, Mocha is an open source JavaScript testing framework that runs on Node.js and in the browser.

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [26. Mai 2020 um 11:33 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/127 "2020-05-26T11:33:41Z")

</div>

> [@pierre-gilles](#):
>
> Ja! Das ist doch nicht codiert, oder? 😅 Es wäre vielleicht gut, wenn es vor einem Release funktioniert, sonst ist es wenig sinnvoll, es zu deployen 😃

Nein, die Bewegungs- und Türsensoren sind noch nicht codiert… Das mache ich heute, das scheint mir relativ einfach umzusetzen ^^

Danke für die Erklärungen, ich glaube, das Problem liegt vor allem beim Mocking. Ich werde versuchen, ein erstes Testskript zu beenden und, wenn du möchtest, poste ich hier den Link, damit du mir sagen kannst, ob meine Vorgehensweise korrekt ist 🙂

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [27. Mai 2020 um 06:38 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/128 "2020-05-27T06:38:55Z")

</div>

Hallo,

Eine erste Version für die Sensoren ist fertig, vielleicht muss man sie später noch verfeinern, aber im Moment scheint mir das Ergebnis gut 🙂

Was die Tests angeht, hier sind die Dateien:

> **[Gladys/server/test/services/arduino at master · billonalex/Gladys](https://github.com/billonalex/Gladys/tree/master/server/test/services/arduino)**
>
> master/server/test/services/arduino

@pierre-gilles, wenn du etwas Zeit hast, um die Codes zu überprüfen und mir zu sagen, was noch hinzugefügt/geändert werden sollte, wäre das wirklich super 😉

Vielen Dank 😄

Edit: Ich arbeite gerade an der demo.json, damit der Service auf der Demo-Website erscheinen kann. Ich denke, dass es bis Mittag fertig sein könnte ^^

Re-edit: Normalerweise ist alles gut.

Anscheinend habe ich nicht die Berechtigung, eine Überprüfung anzufordern, also poste ich die PR hier:

> <https://github.com/GladysAssistant/Gladys/pull/812>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affects code, did your write the tests?
> \- \[x\] Are tests passing? (\`npm test\` on both front/server)
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[x\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)
> \- \[x\] Did you add fake requests data for the demo mode (\`front/src/config/demo.json\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).
> \- \[\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
> \- \[\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/gladys-4-docs) and the \[website\](https://documentation.gladysassistant.com).
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> Please provide a description of the change here. It's always best with screenshots, so don't hesitate to add some!
> 
> This PR is about the Arduino service. Gladys will now be able to interact with Arduino card. The user uploads the generic code on the card, setups the service, creates the device, and interacts with hardware.

Danke 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [28. Mai 2020 um 20:53 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/129 "2020-05-28T20:53:26Z")

</div>

Danke @billona! Tolle Arbeit! Ich gebe dir nächste Woche zu Beginn ein Feedback 🙂

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [4. Juni 2020 um 12:33 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/130 "2020-06-04T12:33:14Z")

</div>

Hallo,

Nach viel Mühe komme ich endlich mit den Tests voran 😄

Ich möchte die lib avrgirl-arduino mocken, um mein Skript setup.js zu überprüfen.

Hier ist, was ich gemacht habe:

> <https://github.com/billonalex/Gladys/blob/master/server/test/services/arduino/AvrgirlMock.test.js>

Und in setup.test.js habe ich proxyquire verwendet:

> <https://github.com/billonalex/Gladys/blob/master/server/test/services/arduino/lib/setup.test.js>

Allerdings habe ich das Gefühl, dass meine Tests meinen Mock nicht berücksichtigen:

```
setup-Methode
2020-06-04T14:16:20+0200 <info> index.js:18 (Server.<anonymous>) Server läuft auf Port 6500
✓ Sollte einen Arduino-Code auf dem Board hochladen (110ms)
2020-06-04T14:16:20+0200 <warn> setup.js:7 () Fehler: Kein Arduino 'mega' gefunden.
at /home/Alexandre/Gladys/server/services/arduino/node_modules/avrgirl-arduino/lib/connection.js:30:25
at /home/Alexandre/Gladys/server/services/arduino/node_modules/avrgirl-arduino/lib/connection.js:70:12
at /home/Alexandre/Gladys/server/services/arduino/node_modules/avrgirl-arduino/lib/connection.js:191:26
at processTicksAndRejections (internal/process/task_queues.js:93:5)
✓ Sollte einen Fehler zurückgeben (451ms)

```

Danach, um meine Sende- und Empfangsskripte abdecken zu können, muss ich den Teil

```
 if (!this.arduinosPorts[arduinoPath].isOpen) {
    this.arduinoParsers[arduinoPath].on('data', async (data) => {

```

meiner Datei abdecken. Die Logik ist dieselbe für listen und senden.

> <https://github.com/billonalex/Gladys/blob/master/server/services/arduino/lib/init.js>

Aber hier tue ich mich etwas schwer zu sehen, wie ich das abdecken soll…

 ![ini coverage](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/c/c019081bb02e6a82a958e58086ca2a1eb3e3ecc3.png)

Kann mir jemand weiterhelfen? Vielen Dank 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [4. Juni 2020 um 16:07 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/131 "2020-06-04T16:07:11Z")

</div>

> [@billona](#):
>
> Und in setup.test.js habe ich proxyquire verwendet:

Mir scheint, dass proxyquire nur auf die Datei funktioniert, die es erfordert. Allerdings sehe ich in deiner Datei `/server/services/arduino/lib/index.js` kein require für `avrgirl-arduino`.

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [4. Juni 2020 um 16:19 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/132 "2020-06-04T16:19:40Z")

</div>

Tatsächlich wird avrgirl-arduino nur im Skript `/server/services/arduino/lib/setup.js` verwendet, daher habe ich kein `require` in `/server/services/arduino/lib/index.js` gemacht. Aber ich sehe nicht, wie ich das lösen soll, da setup eine Methode meines ArduinoManagers ist.

Muss ich setup.js separat vom ArduinoManager testen? Serialport und avrgirl-arduino als Eigenschaft des Managers einbinden und sie dann in meinen Skripten verwenden?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [5. Juni 2020 um 07:02 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/133 "2020-06-05T07:02:18Z")

</div>

Beide Lösungen sind möglich 🙂 Du entscheidest, welche Lösung dir am einfachsten umzusetzen und in Zukunft zu warten erscheint

Früher haben wir normalerweise alle `require`-Anweisungen in die `index.js` des Moduls gestellt und sie als Abhängigkeit in den Manager injiziert. Beispiel: service z-wave

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [5. Juni 2020 um 12:43 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/134 "2020-06-05T12:43:27Z")

</div>

> [@pierre-gilles](#):
>
> Im Allgemeinen haben wir alle „require“ in die „index.js“ des Moduls gestellt und sie als Abhängigkeit in den Manager injiziert. Beispiel: Z-Wave-Service

Stimmt, diese Vorgehensweise erscheint mir viel einfacher ^^ Ich habe meine Skripte entsprechend angepasst, und alles scheint zu funktionieren 😄

Jetzt scheint es, als ob meine Codeabdeckung seltsamerweise in der Zwischenzeit abgenommen hat ^^ Ich arbeite daran und gebe dir Bescheid, wenn alles korrekt erscheint 🙂

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [5. Juni 2020 um 13:35 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/135 "2020-06-05T13:35:57Z")

</div>

Also, normalerweise bin ich bei Tests nicht so schlecht ^^

Der größte Teil, der mir noch fehlt, betrifft das Lesen und Senden von Daten an die Karte.

Typischerweise sind das Funktionen

```
port.on('open', function() {});

```

Zum Beispiel in server/services/arduino/lib/send.js :

 ![on mock](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/5a7ba35481c20e49fd92459ce418275d9836f5ea.png)

Ich finde einfach keine gangbare Lösung, um diesen Teil des Codes abzudecken. Und das ist der größte Teil, der mir noch fehlt ^^

Eine Lösung, um mich zu retten? 😄

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [5. Juni 2020 um 15:12 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/136 "2020-06-05T15:12:57Z")

</div>

Gute Arbeit 👏

> [@billona](#):
>
> Nur finde ich keine gangbare Lösung, um diesen Teil des Codes abzudecken. Und das ist der größte Teil, der mir noch fehlt ^^

Zwei ergänzende Lösungen:

- Verwende eine benannte Funktion, die du für die Tests exponierst, anstatt hier eine anonyme Funktion zu verwenden.

```auto
function onPortOpen () {}
port.on('open', onPortOpen);

```

- Mocke den EventEmitter „port“ und rufe in den Tests auf

```auto
port.emit('open');

```

Was dazu führen wird, die Funktion aufzurufen 🙂 Achte darauf, auch „port.write“ mit fake.returns(0); zu mocken, zum Beispiel

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [5. Juni 2020 um 16:36 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/137 "2020-06-05T16:36:06Z")

</div>

Ich habe Angst, dass ich einige Dinge nicht verstehe ^^

In meinem SerialPortMock habe ich hinzugefügt

```auto
SerialPort.prototype.write = fake.resolves(null);

```

In Bezug auf

```auto
port.emit('open');

```

Wo rufe ich das auf?

In ArduinoManager.test.js habe ich meinen JSON-Sendetest geändert

```auto
it('should send a JSON to the arduino', async () => {
    const sendSpy = spy(arduinoManager, 'send');
    await arduinoManager.send('/dev/ttyACM0', messageData, 1);
    arduinoManager.arduinosPorts['/dev/ttyACM0'].emit('open');
    assert.calledOnce(sendSpy);
    sendSpy.restore();
  });

```

Aber was dann?

In meinem Fall ist port ein SerialPort-Objekt… Ich sehe nicht wirklich, wie ich diesen Test durchführen soll 😅

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [7. Juni 2020 um 21:25 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/138 "2020-06-07T21:25:03Z")

</div>

Hallo!

Also, hier ist es: Laut dem letzten Codecov-Bericht scheinen meine Tests endlich abgeschlossen zu sein ^^

@pierre-gilles Falls du etwas Fehlendes siehst, warte ich auf dein Feedback, ansonsten ist für mich alles gut für eine erste Version 😄

Ich wollte auch Danke sagen! Da es mein erstes „echtes“ Dev in Node und Preact war, war ich zugegeben an manchen Stellen etwas verloren. Also danke für eure Geduld, und ich freue mich darauf, das Ergebnis mehrerer Dev-Abende als integralen Bestandteil von Gladys 4 zu sehen 😄

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [8. Juni 2020 um 07:55 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/139 "2020-06-08T07:55:48Z")

</div>

Gut, dass du das geschafft hast! 🙂 Ich schau mir das mal an! Bravo 👏

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [10. Juni 2020 um 19:15 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/140 "2020-06-10T19:15:28Z")

</div>

Für alle, die auf den Arduino-Service warten, ist er jetzt im Testbuild verfügbar!

Zögert nicht, ihn zu testen und Feedback an @billona hier zu geben 🙂

> [@Bilder spouting\_whale zum Testen von Entwicklungsdiensten](https://community.gladysassistant.com/t/images-pour-tester-des-services-en-developpement/5280?u=pierre-gilles):
>
> Hallo, Für diejenigen, die einen Dienst entwickeln, aber nicht unbedingt mit Docker vertraut sind, schlage ich vor, dass Sie Ihre Bilder erstellen, damit die Community Ihre Integrationen testen kann! Sie müssen mir hier einfach die Infos (Dienst, GitHub-Link) geben Die Bildaktualisierungen werden häufig in Abhängigkeit von meiner Verfügbarkeit durchgeführt Verfügbare Bilder Integration Autor PR Forumspouting_whaleRFlink@joeypic[hier](https://github.com/GladysAssistant/Gladys/pull/655)[hier](https://community.gladysassistant.com/t/v4-dev-service-rflink/5186)[hier](https://hub.docker.com/repository/docker/pebou/gladys/tags?page=1&name=rflink) DSP-W215@PhilippeMA[hier](https://github.com/GladysAssistant/Gladys/pull/760)[hier](https://community.gladysassistant.com/t/v4-dev-service-d-link-dsp-w215-prises-connectees/5348)[hie…](https://hub.docker.com/r/pebou/gladys/tags?page=1&name=4.0.0-beta-integration-dsp-w215)

---

<div class="post-metadata">

**Author:** ![benPi](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/b/53a042/32.png) [@benPi](https://community.gladysassistant.com/u/benPi)\
**Post date:** [13. Juni 2020 um 11:37 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/141 "2020-06-13T11:37:47Z")

</div>

Hallo, im letzten Build (Docker-Image) erkennt das Arduino-Modul meine USB-Ports nicht mehr.

Ich weiß, an welchem Port sich das Arduino befindet.

Bus 001 Gerät 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial-Adapter

Bin ich der Einzige, der diesen Fehler hat?

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [18. Juni 2020 um 22:05 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/142 "2020-06-18T22:05:25Z")

</div>

Ich habe es schnell getestet, kleiner Bug (direkt nach dem Setup eines Arduino Uno)

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/c/c5d7de9b196f751ecb8373902c6f3fdfef0addc4.png)

Kann der Feature-Typ von der Funktion abhängig sein? Ich finde es ein bisschen dumm, eine Feature auszuwählen, wenn die Funktion sie bereits definiert (Light für eine Temperaturfunktion 🙃)

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/7/7183f07dbab4b69197ee875f5bf998b3951a1cce.png)

---

<div class="post-metadata">

**Author:** ![billona](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/billona/32/4330_2.png) [@billona](https://community.gladysassistant.com/u/billona)\
**Post date:** [2. Dezember 2020 um 08:34 UTC](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154/143 "2020-12-02T08:34:25Z")

</div>

Hallo!!

Ich melde mich nach einer langen Abwesenheit meinerseits wegen der Arbeit wieder ^^’

Ich nehme also die Entwicklung des Arduino-Dienstes wieder auf, mit dem Ziel, ein stabiles und perfektes Ergebnis für den Produktionsstart zu haben 😄

Ich habe meinen lokalen Repository rebase, um mit den neuesten Versionen auf dem neuesten Stand zu sein, ich werde also weiter daran arbeiten und ich werde Rückmeldungen zu meinem Fortschritt geben 😉

[Vorherige Seite](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154.md?page=6)

[Nächste Seite](https://community.gladysassistant.com/t/gladys-4-developpement-du-service-arduino/5154.md?page=8)
